databag/net/server/internal/ucProfileNotification_test.go

60 lines
1.5 KiB
Go
Raw Normal View History

2022-01-21 23:08:52 +00:00
package databag
import (
"testing"
2022-01-22 07:00:47 +00:00
"github.com/gorilla/websocket"
"github.com/stretchr/testify/assert"
2022-01-21 23:08:52 +00:00
)
func TestProfileNotification(t *testing.T) {
2022-02-02 19:20:18 +00:00
var cards []Card
2022-01-22 07:00:47 +00:00
var revision Revision
2022-01-27 19:45:01 +00:00
var ws *websocket.Conn
var err error
2022-01-21 23:08:52 +00:00
2022-01-22 07:00:47 +00:00
// connect contacts
2022-01-27 08:07:42 +00:00
_, a, _ := AddTestAccount("profilenotification0")
_, b, _ := AddTestAccount("profilenotification1")
aCard, _ := AddTestCard(a, b)
bCard, _ := AddTestCard(b, a)
OpenTestCard(a, aCard)
OpenTestCard(b, bCard)
2022-01-21 23:08:52 +00:00
2022-02-02 19:20:18 +00:00
// get list of cards
r, w, _ := NewRequest("GET", "/contact/cards", nil)
2022-01-27 08:07:42 +00:00
SetBearerAuth(r, a)
2022-02-02 19:20:18 +00:00
GetCards(w, r)
assert.NoError(t, ReadResponse(w, &cards))
assert.Equal(t, len(cards), 1)
profileRevision := cards[0].NotifiedProfile
2022-01-21 23:08:52 +00:00
2022-01-22 07:00:47 +00:00
// app connects websocket
2022-01-27 19:45:01 +00:00
ws, err = StatusConnection(a, &revision);
assert.NoError(t, err)
2022-01-22 07:00:47 +00:00
cardRevision := revision.Card
2022-01-21 23:08:52 +00:00
2022-01-22 07:00:47 +00:00
// update B profile
profileData := ProfileData{
Name: "Namer",
Location: "San Francisco",
Description: "databaggerr",
};
r, w, _ = NewRequest("PUT", "/profile/data", &profileData)
2022-01-27 08:07:42 +00:00
SetBearerAuth(r, b)
2022-01-22 07:00:47 +00:00
SetProfile(w, r)
assert.NoError(t, ReadResponse(w, nil))
2022-01-21 23:08:52 +00:00
2022-01-22 07:00:47 +00:00
// receive revision
2022-01-27 19:45:01 +00:00
err = StatusRevision(ws, &revision)
assert.NoError(t, err)
2022-01-22 07:00:47 +00:00
assert.NotEqual(t, cardRevision, revision.Card)
2022-01-21 23:08:52 +00:00
2022-02-02 19:20:18 +00:00
// get list of cards
r, w, _ = NewRequest("GET", "/contact/cards", nil)
2022-01-27 08:07:42 +00:00
SetBearerAuth(r, a)
2022-02-02 19:20:18 +00:00
GetCards(w, r)
assert.NoError(t, ReadResponse(w, &cards))
assert.Equal(t, len(cards), 1)
assert.NotEqual(t, profileRevision, cards[0].NotifiedProfile)
2022-01-21 23:08:52 +00:00
}