Skip to content

Commit

Permalink
mls: add store insert/query test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
Steven Normore committed Jan 11, 2024
1 parent 4be15cf commit b7932dc
Show file tree
Hide file tree
Showing 6 changed files with 567 additions and 544 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ require (
github.com/uptrace/bun/driver/pgdriver v1.1.16
github.com/waku-org/go-waku v0.8.0
github.com/xmtp/go-msgio v0.2.1-0.20220510223757-25a701b79cd3
github.com/xmtp/proto/v3 v3.36.3-0.20240111115707-f2e60758fa55
github.com/xmtp/proto/v3 v3.36.3-0.20240111120253-eacdbc385fcb
github.com/yoheimuta/protolint v0.39.0
go.uber.org/zap v1.24.0
golang.org/x/sync v0.3.0
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -1146,8 +1146,8 @@ github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0
github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
github.com/xmtp/go-msgio v0.2.1-0.20220510223757-25a701b79cd3 h1:wzUffJGCTBGXIDyNU+1UBu1fn2Nzo+OQzM1pLrheh58=
github.com/xmtp/go-msgio v0.2.1-0.20220510223757-25a701b79cd3/go.mod h1:bJREWk+NDnZYjgLQdAi8SUWuq/5pkMme4GqiffEhUF4=
github.com/xmtp/proto/v3 v3.36.3-0.20240111115707-f2e60758fa55 h1:EyaL20B1UNMLJ+sCGWLNlUukyO/x01g5LtHL9KDGutU=
github.com/xmtp/proto/v3 v3.36.3-0.20240111115707-f2e60758fa55/go.mod h1:NF2zAjtNpVIhS4tFG19g4L1tJcPZHm81oeDFXltmOiY=
github.com/xmtp/proto/v3 v3.36.3-0.20240111120253-eacdbc385fcb h1:kb8GdYfxYun1UPbMLA1P9/mG9hxj9dJH+gCROivBTJw=
github.com/xmtp/proto/v3 v3.36.3-0.20240111120253-eacdbc385fcb/go.mod h1:NF2zAjtNpVIhS4tFG19g4L1tJcPZHm81oeDFXltmOiY=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
github.com/yoheimuta/go-protoparser/v4 v4.6.0 h1:uvz1e9/5Ihsm4Ku8AJeDImTpirKmIxubZdSn0QJNdnw=
github.com/yoheimuta/go-protoparser/v4 v4.6.0/go.mod h1:AHNNnSWnb0UoL4QgHPiOAg2BniQceFscPI5X/BZNHl8=
Expand Down
52 changes: 2 additions & 50 deletions pkg/mls/api/v1/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
wakunode "github.com/waku-org/go-waku/waku/v2/node"
wakupb "github.com/waku-org/go-waku/waku/v2/protocol/pb"
proto "github.com/xmtp/proto/v3/go/mls/api/v1"
"github.com/xmtp/proto/v3/go/mls/message_contents"
mlsstore "github.com/xmtp/xmtp-node-go/pkg/mls/store"
"github.com/xmtp/xmtp-node-go/pkg/mlsvalidate"
"github.com/xmtp/xmtp-node-go/pkg/topic"
Expand Down Expand Up @@ -222,58 +221,11 @@ func (s *Service) SendWelcomeMessages(ctx context.Context, req *proto.SendWelcom
}

func (s *Service) QueryGroupMessages(ctx context.Context, req *proto.QueryGroupMessagesRequest) (*proto.QueryGroupMessagesResponse, error) {
msgs, err := s.store.QueryGroupMessages(ctx, req)
if err != nil {
return nil, err
}

messages := make([]*message_contents.GroupMessage, 0, len(msgs))
for _, msg := range msgs {
messages = append(messages, &message_contents.GroupMessage{
Version: &message_contents.GroupMessage_V1_{
V1: &message_contents.GroupMessage_V1{
Id: msg.Id,
CreatedNs: uint64(msg.CreatedAt.UnixNano()),
GroupId: msg.GroupId,
Data: msg.Data,
},
},
})
}

// TODO(snormore): build and return paging info

return &proto.QueryGroupMessagesResponse{
Messages: messages,
PagingInfo: nil,
}, nil
return s.store.QueryGroupMessagesV1(ctx, req)
}

func (s *Service) QueryWelcomeMessages(ctx context.Context, req *proto.QueryWelcomeMessagesRequest) (*proto.QueryWelcomeMessagesResponse, error) {
msgs, err := s.store.QueryWelcomeMessages(ctx, req)
if err != nil {
return nil, err
}

messages := make([]*message_contents.WelcomeMessage, 0, len(msgs))
for _, msg := range msgs {
messages = append(messages, &message_contents.WelcomeMessage{
Version: &message_contents.WelcomeMessage_V1_{
V1: &message_contents.WelcomeMessage_V1{
Id: msg.Id,
CreatedNs: uint64(msg.CreatedAt.UnixNano()),
Data: msg.Data,
},
},
})
}

// TODO(snormore): build and return paging info

return &proto.QueryWelcomeMessagesResponse{
Messages: messages,
PagingInfo: nil,
}, nil
return s.store.QueryWelcomeMessagesV1(ctx, req)
}

func buildIdentityUpdate(update mlsstore.IdentityUpdate) *proto.GetIdentityUpdatesResponse_Update {
Expand Down
50 changes: 42 additions & 8 deletions pkg/mls/api/v1/service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"github.com/stretchr/testify/require"
"github.com/uptrace/bun"
mlsv1 "github.com/xmtp/proto/v3/go/mls/api/v1"
messageContents "github.com/xmtp/proto/v3/go/mls/message_contents"
"github.com/xmtp/proto/v3/go/mls/message_contents"
mlsstore "github.com/xmtp/xmtp-node-go/pkg/mls/store"
"github.com/xmtp/xmtp-node-go/pkg/mlsvalidate"
test "github.com/xmtp/xmtp-node-go/pkg/testing"
Expand Down Expand Up @@ -230,9 +230,9 @@ func TestSendGroupMessages(t *testing.T) {
mlsValidationService.mockValidateGroupMessages(groupId)

_, err := svc.SendGroupMessages(ctx, &mlsv1.SendGroupMessagesRequest{
Messages: []*messageContents.GroupMessage{{
Version: &messageContents.GroupMessage_V1_{
V1: &messageContents.GroupMessage_V1{
Messages: []*message_contents.GroupMessage{{
Version: &message_contents.GroupMessage_V1_{
V1: &message_contents.GroupMessage_V1{
Id: 1,
CreatedNs: 1,
GroupId: "group",
Expand All @@ -243,13 +243,47 @@ func TestSendGroupMessages(t *testing.T) {
})
require.NoError(t, err)

msgs, err := svc.store.QueryGroupMessages(ctx, &mlsv1.QueryGroupMessagesRequest{
resp, err := svc.store.QueryGroupMessagesV1(ctx, &mlsv1.QueryGroupMessagesRequest{
GroupId: groupId,
})
require.NoError(t, err)
require.Len(t, msgs, 1)
require.Equal(t, msgs[0].Data, []byte("test"))
require.NotNil(t, msgs[0].CreatedAt)
require.Len(t, resp.Messages, 1)
require.Equal(t, resp.Messages[0].GetV1().Data, []byte("test"))
require.NotEmpty(t, resp.Messages[0].GetV1().CreatedNs)
}

func TestSendWelcomeMessages(t *testing.T) {
ctx := context.Background()
svc, _, _, cleanup := newTestService(t, ctx)
defer cleanup()

installationId := test.RandomString(32)

_, err := svc.SendWelcomeMessages(ctx, &mlsv1.SendWelcomeMessagesRequest{
WelcomeMessages: []*mlsv1.SendWelcomeMessagesRequest_WelcomeMessageRequest{
{
InstallationId: []byte(installationId),
WelcomeMessage: &message_contents.WelcomeMessage{
Version: &message_contents.WelcomeMessage_V1_{
V1: &message_contents.WelcomeMessage_V1{
Id: 1,
CreatedNs: 1,
Data: []byte("test"),
},
},
},
},
},
})
require.NoError(t, err)

resp, err := svc.store.QueryWelcomeMessagesV1(ctx, &mlsv1.QueryWelcomeMessagesRequest{
InstallationId: installationId,
})
require.NoError(t, err)
require.Len(t, resp.Messages, 1)
require.Equal(t, resp.Messages[0].GetV1().Data, []byte("test"))
require.NotEmpty(t, resp.Messages[0].GetV1().CreatedNs)
}

func TestGetIdentityUpdates(t *testing.T) {
Expand Down
Loading

0 comments on commit b7932dc

Please sign in to comment.