Fixes websocket server and session tests
This commit is contained in:
parent
48cb4842f4
commit
8eef51d445
@ -46,18 +46,18 @@ func TestWebsocketSend_ExistingSessions(t *testing.T) {
|
||||
req.Empty(s2)
|
||||
|
||||
req.NoError(ws.Send("msg", "msg1", s1User))
|
||||
req.Equal(s1.String(), `{"msg":"msg1"}`)
|
||||
req.Equal(s1.String(), `{"@type":"msg","@value":"msg1"}`)
|
||||
req.Equal(s2.String(), "")
|
||||
|
||||
req.NoError(ws.Send("msg", "msg2", s2User))
|
||||
req.Equal(s1.String(), `{"msg":"msg1"}`)
|
||||
req.Equal(s2.String(), `{"msg":"msg2"}`)
|
||||
req.Equal(s1.String(), `{"@type":"msg","@value":"msg1"}`)
|
||||
req.Equal(s2.String(), `{"@type":"msg","@value":"msg2"}`)
|
||||
|
||||
req.NoError(ws.Send("both", "msg3", s1User, s2User))
|
||||
req.Equal(s1.String(), `{"msg":"msg1"}{"both":"msg3"}`)
|
||||
req.Equal(s2.String(), `{"msg":"msg2"}{"both":"msg3"}`)
|
||||
req.Equal(s1.String(), `{"@type":"msg","@value":"msg1"}{"@type":"both","@value":"msg3"}`)
|
||||
req.Equal(s2.String(), `{"@type":"msg","@value":"msg2"}{"@type":"both","@value":"msg3"}`)
|
||||
|
||||
req.NoError(ws.Send("all", "msg4"))
|
||||
req.Equal(s1.String(), `{"msg":"msg1"}{"both":"msg3"}{"all":"msg4"}`)
|
||||
req.Equal(s2.String(), `{"msg":"msg2"}{"both":"msg3"}{"all":"msg4"}`)
|
||||
req.Equal(s1.String(), `{"@type":"msg","@value":"msg1"}{"@type":"both","@value":"msg3"}{"@type":"all","@value":"msg4"}`)
|
||||
req.Equal(s2.String(), `{"@type":"msg","@value":"msg2"}{"@type":"both","@value":"msg3"}{"@type":"all","@value":"msg4"}`)
|
||||
}
|
||||
|
||||
@ -2,8 +2,10 @@ package websocket
|
||||
|
||||
import (
|
||||
"github.com/cortezaproject/corteza-server/pkg/auth"
|
||||
"github.com/cortezaproject/corteza-server/pkg/logger"
|
||||
"github.com/cortezaproject/corteza-server/pkg/options"
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.uber.org/zap"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
@ -17,37 +19,40 @@ func TestSession_procRawMessage(t *testing.T) {
|
||||
userID uint64 = 123
|
||||
)
|
||||
|
||||
if testing.Verbose() {
|
||||
s.logger = logger.MakeDebugLogger()
|
||||
} else {
|
||||
s.logger = zap.NewNop()
|
||||
}
|
||||
|
||||
req.NoError(err)
|
||||
s.server.accessToken = jwtHandler
|
||||
|
||||
jwt := jwtHandler.Encode(auth.NewIdentity(userID, 456, 789))
|
||||
|
||||
req.EqualError(s.procRawMessage([]byte("{}")), "empty payload")
|
||||
req.EqualError(s.procRawMessage([]byte("{}")), "unauthenticated session")
|
||||
req.Nil(s.identity)
|
||||
|
||||
req.EqualError(s.procRawMessage([]byte(`{"auth":{}}`)), "unauthorized: token contains an invalid number of segments")
|
||||
req.EqualError(s.procRawMessage([]byte(`{"@type": "credentials", "@value": {"accessToken": ""}}`)), "unauthorized: token contains an invalid number of segments")
|
||||
req.Nil(s.identity)
|
||||
|
||||
req.EqualError(s.procRawMessage([]byte(`{"auth":{"access_token": ""}}`)), "unauthorized: token contains an invalid number of segments")
|
||||
req.Nil(s.identity)
|
||||
|
||||
req.NoError(s.procRawMessage([]byte(`{"auth":{"access_token": "` + jwt + `"}}`)))
|
||||
req.NoError(s.procRawMessage([]byte(`{"@type": "credentials", "@value": {"accessToken": "` + jwt + `"}}`)))
|
||||
req.NotNil(s.identity)
|
||||
req.Equal(userID, s.identity.Identity())
|
||||
|
||||
req.EqualError(s.procRawMessage([]byte("{}")), "empty payload")
|
||||
req.EqualError(s.procRawMessage([]byte("{}")), "unknown message type ''")
|
||||
req.Equal(userID, s.identity.Identity())
|
||||
|
||||
// Repeat with the same user
|
||||
jwt = jwtHandler.Encode(auth.NewIdentity(userID, 456, 789))
|
||||
|
||||
req.NoError(s.procRawMessage([]byte(`{"auth":{"access_token": "` + jwt + `"}}`)))
|
||||
req.NoError(s.procRawMessage([]byte(`{"@type": "credentials", "@value": {"accessToken": "` + jwt + `"}}`)))
|
||||
req.NotNil(s.identity)
|
||||
req.Equal(userID, s.identity.Identity())
|
||||
|
||||
// Try to authenticate on an existing authenticated session as a different user
|
||||
jwt = jwtHandler.Encode(auth.NewIdentity(userID+1, 456, 789))
|
||||
|
||||
req.EqualError(s.procRawMessage([]byte(`{"auth":{"access_token": "`+jwt+`"}}`)), "unauthorized: identity does not match")
|
||||
req.EqualError(s.procRawMessage([]byte(`{"@type": "credentials", "@value": {"accessToken": "`+jwt+`"}}`)), "unauthorized: identity does not match")
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user