package databag import ( "time" "testing" "encoding/json" "github.com/gorilla/mux" "github.com/gorilla/websocket" "github.com/stretchr/testify/assert" ) func TestGroupContact(t *testing.T) { var subject *Subject var group Group var groups []Group var groupRevision int64 var cardRevision int64 var revision Revision var vars map[string]string var cardData CardData // connect contacts access := AddTestContacts(t, "groupcontact", 2); contact := ConnectTestContacts(t, access[0], access[1]) // app connects websocket wsA := getTestWebsocket() announce := Announce{ AppToken: access[0] } data, _ := json.Marshal(&announce) wsA.WriteMessage(websocket.TextMessage, data) // receive revision wsA.SetReadDeadline(time.Now().Add(2 * time.Second)) _, data, _ = wsA.ReadMessage() assert.NoError(t, json.Unmarshal(data, &revision)) groupRevision = revision.Group // add group to conatact 0 subject = &Subject{ DataType: "imagroup", Data: "group data with name and logo", } r, w, _ := NewRequest("POST", "/share/groups", subject) SetBearerAuth(r, access[0]) AddGroup(w, r) assert.NoError(t, ReadResponse(w, &group)) // receive revision wsA.SetReadDeadline(time.Now().Add(2 * time.Second)) _, data, _ = wsA.ReadMessage() assert.NoError(t, json.Unmarshal(data, &revision)) assert.NotEqual(t, groupRevision, revision.Group) cardRevision = revision.Card // set contact group r, w, _ = NewRequest("PUT", "/contact/cards/{cardId}/groups/{groupId}", nil) vars = make(map[string]string) vars["groupId"] = group.GroupId vars["cardId"] = contact[0].ContactCardId r = mux.SetURLVars(r, vars) SetBearerAuth(r, access[0]) SetCardGroup(w, r) assert.NoError(t, ReadResponse(w, &cardData)) assert.Equal(t, 1, len(cardData.Groups)) // receive revision wsA.SetReadDeadline(time.Now().Add(2 * time.Second)) _, data, _ = wsA.ReadMessage() assert.NoError(t, json.Unmarshal(data, &revision)) assert.NotEqual(t, cardRevision, revision.Card) // show group view r, w, _ = NewRequest("GET", "/share/groups", nil) SetBearerAuth(r, access[0]) GetGroups(w, r) assert.NoError(t, ReadResponse(w, &groups)) assert.Equal(t, 1, len(groups)) PrintMsg(groups) // add group // show group view }