mirror of
https://github.com/balzack/databag.git
synced 2025-02-15 04:59:16 +00:00
completed connect contact test
This commit is contained in:
parent
718d726eab
commit
dc2c45df1d
@ -28,7 +28,11 @@ func SetCardStatus(w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !AppCardStatus(status) {
|
if !AppCardStatus(status) {
|
||||||
ErrResponse(w, http.StatusBadRequest, err)
|
ErrResponse(w, http.StatusBadRequest, errors.New("unknown status"))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if status == APP_CARDCONNECTED && token == "" {
|
||||||
|
ErrResponse(w, http.StatusBadRequest, errors.New("connected token not set"))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ package databag
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"github.com/gorilla/mux"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -49,3 +50,90 @@ func AddTestContacts(t *testing.T, prefix string, count int) []string {
|
|||||||
|
|
||||||
return access
|
return access
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ConnectTestContacts(t *testing.T, access [2]string) {
|
||||||
|
var card Card
|
||||||
|
var msg DataMessage
|
||||||
|
var vars map[string]string
|
||||||
|
var contactStatus ContactStatus
|
||||||
|
|
||||||
|
// get A identity message
|
||||||
|
r, w, _ := NewRequest("GET", "/profile/message", nil)
|
||||||
|
SetBearerAuth(r, access[0])
|
||||||
|
GetProfileMessage(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &msg))
|
||||||
|
|
||||||
|
// add A card in B
|
||||||
|
r, w, _ = NewRequest("POST", "/contact/cards", &msg)
|
||||||
|
SetBearerAuth(r, access[1])
|
||||||
|
AddCard(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &card))
|
||||||
|
|
||||||
|
// update A status to connecting
|
||||||
|
r, w, _ = NewRequest("PUT", "/contact/cards/{cardId}/status", APP_CARDCONNECTING)
|
||||||
|
vars = map[string]string{ "cardId": card.CardId }
|
||||||
|
r = mux.SetURLVars(r, vars)
|
||||||
|
SetBearerAuth(r, access[1])
|
||||||
|
SetCardStatus(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &card))
|
||||||
|
|
||||||
|
// get open message to A
|
||||||
|
r, w, _ = NewRequest("GET", "/contact/cards/{cardId}/openMessage", nil)
|
||||||
|
vars = map[string]string{ "cardId": card.CardId }
|
||||||
|
r = mux.SetURLVars(r, vars)
|
||||||
|
SetBearerAuth(r, access[1])
|
||||||
|
GetOpenMessage(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &msg))
|
||||||
|
|
||||||
|
// set open message in A
|
||||||
|
r, w, _ = NewRequest("PUT", "/contact/openMessage", msg)
|
||||||
|
SetOpenMessage(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &contactStatus))
|
||||||
|
|
||||||
|
// get view of cards in A
|
||||||
|
r, w, _ = NewRequest("GET", "/contact/cards/view", nil)
|
||||||
|
SetBearerAuth(r, access[0])
|
||||||
|
GetCardView(w, r)
|
||||||
|
var views []CardView
|
||||||
|
assert.NoError(t, ReadResponse(w, &views))
|
||||||
|
assert.Equal(t, len(views), 1)
|
||||||
|
|
||||||
|
// get B card in A
|
||||||
|
r, w, _ = NewRequest("GET", "/contact/cards/{cardId}", nil)
|
||||||
|
vars = map[string]string{ "cardId": views[0].CardId }
|
||||||
|
r = mux.SetURLVars(r, vars)
|
||||||
|
SetBearerAuth(r, access[0])
|
||||||
|
GetCard(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &card))
|
||||||
|
|
||||||
|
// update B status to connecting
|
||||||
|
r, w, _ = NewRequest("PUT", "/contact/cards/{cardId}/status", APP_CARDCONNECTING)
|
||||||
|
vars = map[string]string{ "cardId": views[0].CardId }
|
||||||
|
r = mux.SetURLVars(r, vars)
|
||||||
|
SetBearerAuth(r, access[0])
|
||||||
|
SetCardStatus(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &card))
|
||||||
|
|
||||||
|
// get open message to B
|
||||||
|
r, w, _ = NewRequest("GET", "/contact/cards/{cardId}/openMessage", nil)
|
||||||
|
vars = map[string]string{ "cardId": views[0].CardId }
|
||||||
|
r = mux.SetURLVars(r, vars)
|
||||||
|
SetBearerAuth(r, access[0])
|
||||||
|
GetOpenMessage(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &msg))
|
||||||
|
|
||||||
|
// set open message in B
|
||||||
|
r, w, _ = NewRequest("PUT", "/contact/openMessage", msg)
|
||||||
|
SetOpenMessage(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &contactStatus))
|
||||||
|
assert.Equal(t, APP_CARDCONNECTED, contactStatus.Status)
|
||||||
|
|
||||||
|
// update B status to connected
|
||||||
|
r, w, _ = NewRequest("PUT", "/contact/cards/{cardId}/status?token=" + contactStatus.Token, APP_CARDCONNECTED)
|
||||||
|
vars = map[string]string{ "cardId": views[0].CardId }
|
||||||
|
r = mux.SetURLVars(r, vars)
|
||||||
|
SetBearerAuth(r, access[0])
|
||||||
|
SetCardStatus(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &card))
|
||||||
|
|
||||||
|
}
|
||||||
|
@ -14,6 +14,7 @@ func TestConnectContact(t *testing.T) {
|
|||||||
var msg DataMessage
|
var msg DataMessage
|
||||||
var vars map[string]string
|
var vars map[string]string
|
||||||
var cardRevision int64
|
var cardRevision int64
|
||||||
|
var contactStatus ContactStatus
|
||||||
|
|
||||||
// create some contacts for this test
|
// create some contacts for this test
|
||||||
access := AddTestContacts(t, "connect", 2)
|
access := AddTestContacts(t, "connect", 2)
|
||||||
@ -53,7 +54,7 @@ func TestConnectContact(t *testing.T) {
|
|||||||
SetCardStatus(w, r)
|
SetCardStatus(w, r)
|
||||||
assert.NoError(t, ReadResponse(w, &card))
|
assert.NoError(t, ReadResponse(w, &card))
|
||||||
|
|
||||||
// profile revision incremented
|
// card revision incremented
|
||||||
_, data, _ = ws.ReadMessage()
|
_, data, _ = ws.ReadMessage()
|
||||||
assert.NoError(t, json.Unmarshal(data, &revision))
|
assert.NoError(t, json.Unmarshal(data, &revision))
|
||||||
assert.NotEqual(t, cardRevision, revision.Card)
|
assert.NotEqual(t, cardRevision, revision.Card)
|
||||||
@ -70,7 +71,6 @@ func TestConnectContact(t *testing.T) {
|
|||||||
// set open message in A
|
// set open message in A
|
||||||
r, w, _ = NewRequest("PUT", "/contact/openMessage", msg)
|
r, w, _ = NewRequest("PUT", "/contact/openMessage", msg)
|
||||||
SetOpenMessage(w, r)
|
SetOpenMessage(w, r)
|
||||||
var contactStatus ContactStatus
|
|
||||||
assert.NoError(t, ReadResponse(w, &contactStatus))
|
assert.NoError(t, ReadResponse(w, &contactStatus))
|
||||||
|
|
||||||
// get view of cards in A
|
// get view of cards in A
|
||||||
@ -89,21 +89,41 @@ func TestConnectContact(t *testing.T) {
|
|||||||
GetCard(w, r)
|
GetCard(w, r)
|
||||||
assert.NoError(t, ReadResponse(w, &card))
|
assert.NoError(t, ReadResponse(w, &card))
|
||||||
|
|
||||||
PrintMsg(card);
|
// update B status to connecting
|
||||||
|
r, w, _ = NewRequest("PUT", "/contact/cards/{cardId}/status", APP_CARDCONNECTING)
|
||||||
|
vars = map[string]string{ "cardId": views[0].CardId }
|
||||||
|
r = mux.SetURLVars(r, vars)
|
||||||
|
SetBearerAuth(r, access[0])
|
||||||
|
SetCardStatus(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &card))
|
||||||
|
|
||||||
|
// get open message to B
|
||||||
|
r, w, _ = NewRequest("GET", "/contact/cards/{cardId}/openMessage", nil)
|
||||||
|
vars = map[string]string{ "cardId": views[0].CardId }
|
||||||
|
r = mux.SetURLVars(r, vars)
|
||||||
|
SetBearerAuth(r, access[0])
|
||||||
|
GetOpenMessage(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &msg))
|
||||||
|
|
||||||
// get new card
|
// set open message in B
|
||||||
|
r, w, _ = NewRequest("PUT", "/contact/openMessage", msg)
|
||||||
|
SetOpenMessage(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &contactStatus))
|
||||||
|
assert.Equal(t, APP_CARDCONNECTED, contactStatus.Status)
|
||||||
|
|
||||||
// set status of pending to connecting
|
// card revision incremented
|
||||||
|
_, data, _ = ws.ReadMessage()
|
||||||
// create open message
|
assert.NoError(t, json.Unmarshal(data, &revision))
|
||||||
|
assert.NotEqual(t, cardRevision, revision.Card)
|
||||||
// deliver open message
|
cardRevision = revision.Card
|
||||||
|
|
||||||
// receive websocket message
|
|
||||||
|
|
||||||
// update status to connected
|
|
||||||
|
|
||||||
|
// update B status to connected
|
||||||
|
r, w, _ = NewRequest("PUT", "/contact/cards/{cardId}/status?token=" + contactStatus.Token, APP_CARDCONNECTED)
|
||||||
|
vars = map[string]string{ "cardId": views[0].CardId }
|
||||||
|
r = mux.SetURLVars(r, vars)
|
||||||
|
SetBearerAuth(r, access[0])
|
||||||
|
SetCardStatus(w, r)
|
||||||
|
assert.NoError(t, ReadResponse(w, &card))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user