mirror of
https://github.com/balzack/databag.git
synced 2025-02-12 11:39:17 +00:00
85 lines
2.2 KiB
Go
85 lines
2.2 KiB
Go
|
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
|
||
|
}
|