databag/net/server/internal/ucGroupContact_test.go

85 lines
2.2 KiB
Go
Raw Normal View History

2022-01-25 05:22:33 +00:00
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
}