docs: reorder & testing
This commit is contained in:
+153
-241
@@ -5,9 +5,17 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
commonfbs "galaxy/schema/fbs/common"
|
||||
notificationfbs "galaxy/schema/fbs/notification"
|
||||
|
||||
flatbuffers "github.com/google/flatbuffers/go"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
var (
|
||||
testNotificationGameID = uuid.MustParse("11111111-1111-1111-1111-111111111111")
|
||||
testNotificationApplicationID = uuid.MustParse("22222222-2222-2222-2222-222222222222")
|
||||
testNotificationInviterID = uuid.MustParse("33333333-3333-3333-3333-333333333333")
|
||||
)
|
||||
|
||||
func TestNotificationPayloadRoundTrips(t *testing.T) {
|
||||
@@ -20,94 +28,123 @@ func TestNotificationPayloadRoundTrips(t *testing.T) {
|
||||
decode func([]byte) (any, error)
|
||||
}{
|
||||
{
|
||||
name: "game turn ready",
|
||||
source: &GameTurnReadyEvent{GameID: "game-1", TurnNumber: 54},
|
||||
encode: func(value any) ([]byte, error) { return GameTurnReadyEventToPayload(value.(*GameTurnReadyEvent)) },
|
||||
decode: func(data []byte) (any, error) { return PayloadToGameTurnReadyEvent(data) },
|
||||
name: "lobby invite received",
|
||||
source: &LobbyInviteReceivedEvent{GameID: testNotificationGameID, InviterUserID: testNotificationInviterID},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return LobbyInviteReceivedEventToPayload(v.(*LobbyInviteReceivedEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyInviteReceivedEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "game finished",
|
||||
source: &GameFinishedEvent{GameID: "game-2", FinalTurnNumber: 99},
|
||||
encode: func(value any) ([]byte, error) { return GameFinishedEventToPayload(value.(*GameFinishedEvent)) },
|
||||
decode: func(data []byte) (any, error) { return PayloadToGameFinishedEvent(data) },
|
||||
name: "lobby invite revoked",
|
||||
source: &LobbyInviteRevokedEvent{GameID: testNotificationGameID},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return LobbyInviteRevokedEventToPayload(v.(*LobbyInviteRevokedEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyInviteRevokedEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "lobby application submitted",
|
||||
source: &LobbyApplicationSubmittedEvent{GameID: "game-3", ApplicantUserID: "user-7"},
|
||||
encode: func(value any) ([]byte, error) {
|
||||
return LobbyApplicationSubmittedEventToPayload(value.(*LobbyApplicationSubmittedEvent))
|
||||
source: &LobbyApplicationSubmittedEvent{GameID: testNotificationGameID, ApplicationID: testNotificationApplicationID},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return LobbyApplicationSubmittedEventToPayload(v.(*LobbyApplicationSubmittedEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyApplicationSubmittedEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "lobby membership approved",
|
||||
source: &LobbyMembershipApprovedEvent{GameID: "game-4"},
|
||||
encode: func(value any) ([]byte, error) {
|
||||
return LobbyMembershipApprovedEventToPayload(value.(*LobbyMembershipApprovedEvent))
|
||||
name: "lobby application approved",
|
||||
source: &LobbyApplicationApprovedEvent{GameID: testNotificationGameID},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return LobbyApplicationApprovedEventToPayload(v.(*LobbyApplicationApprovedEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyMembershipApprovedEvent(data) },
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyApplicationApprovedEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "lobby membership rejected",
|
||||
source: &LobbyMembershipRejectedEvent{GameID: "game-5"},
|
||||
encode: func(value any) ([]byte, error) {
|
||||
return LobbyMembershipRejectedEventToPayload(value.(*LobbyMembershipRejectedEvent))
|
||||
name: "lobby application rejected",
|
||||
source: &LobbyApplicationRejectedEvent{GameID: testNotificationGameID},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return LobbyApplicationRejectedEventToPayload(v.(*LobbyApplicationRejectedEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyMembershipRejectedEvent(data) },
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyApplicationRejectedEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "lobby invite created",
|
||||
source: &LobbyInviteCreatedEvent{GameID: "game-6", InviterUserID: "user-8"},
|
||||
encode: func(value any) ([]byte, error) {
|
||||
return LobbyInviteCreatedEventToPayload(value.(*LobbyInviteCreatedEvent))
|
||||
name: "lobby membership removed",
|
||||
source: &LobbyMembershipRemovedEvent{Reason: "deleted"},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return LobbyMembershipRemovedEventToPayload(v.(*LobbyMembershipRemovedEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyInviteCreatedEvent(data) },
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyMembershipRemovedEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "lobby invite redeemed",
|
||||
source: &LobbyInviteRedeemedEvent{GameID: "game-7", InviteeUserID: "user-9"},
|
||||
encode: func(value any) ([]byte, error) {
|
||||
return LobbyInviteRedeemedEventToPayload(value.(*LobbyInviteRedeemedEvent))
|
||||
name: "lobby membership blocked",
|
||||
source: &LobbyMembershipBlockedEvent{GameID: testNotificationGameID, Reason: "permanent_blocked"},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return LobbyMembershipBlockedEventToPayload(v.(*LobbyMembershipBlockedEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyInviteRedeemedEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "lobby race name registration eligible",
|
||||
source: &LobbyRaceNameRegistrationEligibleEvent{
|
||||
GameID: "game-8",
|
||||
RaceName: "Skylancer",
|
||||
EligibleUntilMs: 1775208100000,
|
||||
},
|
||||
encode: func(value any) ([]byte, error) {
|
||||
return LobbyRaceNameRegistrationEligibleEventToPayload(value.(*LobbyRaceNameRegistrationEligibleEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyRaceNameRegistrationEligibleEvent(data) },
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyMembershipBlockedEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "lobby race name registered",
|
||||
source: &LobbyRaceNameRegisteredEvent{RaceName: "Skylancer"},
|
||||
encode: func(value any) ([]byte, error) {
|
||||
return LobbyRaceNameRegisteredEventToPayload(value.(*LobbyRaceNameRegisteredEvent))
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return LobbyRaceNameRegisteredEventToPayload(v.(*LobbyRaceNameRegisteredEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyRaceNameRegisteredEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "lobby race name pending",
|
||||
source: &LobbyRaceNamePendingEvent{RaceName: "Skylancer", ExpiresAt: "2026-05-06T12:00:00Z"},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return LobbyRaceNamePendingEventToPayload(v.(*LobbyRaceNamePendingEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyRaceNamePendingEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "lobby race name expired",
|
||||
source: &LobbyRaceNameExpiredEvent{RaceName: "Skylancer"},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return LobbyRaceNameExpiredEventToPayload(v.(*LobbyRaceNameExpiredEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToLobbyRaceNameExpiredEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "runtime image pull failed",
|
||||
source: &RuntimeImagePullFailedEvent{GameID: testNotificationGameID, ImageRef: "gcr.io/example:1.0.0"},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return RuntimeImagePullFailedEventToPayload(v.(*RuntimeImagePullFailedEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToRuntimeImagePullFailedEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "runtime container start failed",
|
||||
source: &RuntimeContainerStartFailedEvent{GameID: testNotificationGameID},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return RuntimeContainerStartFailedEventToPayload(v.(*RuntimeContainerStartFailedEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToRuntimeContainerStartFailedEvent(data) },
|
||||
},
|
||||
{
|
||||
name: "runtime start config invalid",
|
||||
source: &RuntimeStartConfigInvalidEvent{GameID: testNotificationGameID, Reason: "missing engine version"},
|
||||
encode: func(v any) ([]byte, error) {
|
||||
return RuntimeStartConfigInvalidEventToPayload(v.(*RuntimeStartConfigInvalidEvent))
|
||||
},
|
||||
decode: func(data []byte) (any, error) { return PayloadToRuntimeStartConfigInvalidEvent(data) },
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
payload, err := tt.encode(tt.source)
|
||||
if err != nil {
|
||||
t.Fatalf("encode payload: %v", err)
|
||||
}
|
||||
|
||||
decoded, err := tt.decode(payload)
|
||||
if err != nil {
|
||||
t.Fatalf("decode payload: %v", err)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(tt.source, decoded) {
|
||||
t.Fatalf("round-trip mismatch\nsource: %#v\ndecoded:%#v", tt.source, decoded)
|
||||
}
|
||||
@@ -122,76 +159,25 @@ func TestNotificationPayloadEncodersRejectNilInputs(t *testing.T) {
|
||||
name string
|
||||
call func() error
|
||||
}{
|
||||
{
|
||||
name: "game turn ready",
|
||||
call: func() error {
|
||||
_, err := GameTurnReadyEventToPayload(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "game finished",
|
||||
call: func() error {
|
||||
_, err := GameFinishedEventToPayload(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby application submitted",
|
||||
call: func() error {
|
||||
_, err := LobbyApplicationSubmittedEventToPayload(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby membership approved",
|
||||
call: func() error {
|
||||
_, err := LobbyMembershipApprovedEventToPayload(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby membership rejected",
|
||||
call: func() error {
|
||||
_, err := LobbyMembershipRejectedEventToPayload(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby invite created",
|
||||
call: func() error {
|
||||
_, err := LobbyInviteCreatedEventToPayload(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby invite redeemed",
|
||||
call: func() error {
|
||||
_, err := LobbyInviteRedeemedEventToPayload(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby race name registration eligible",
|
||||
call: func() error {
|
||||
_, err := LobbyRaceNameRegistrationEligibleEventToPayload(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby race name registered",
|
||||
call: func() error {
|
||||
_, err := LobbyRaceNameRegisteredEventToPayload(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{"lobby invite received", func() error { _, err := LobbyInviteReceivedEventToPayload(nil); return err }},
|
||||
{"lobby invite revoked", func() error { _, err := LobbyInviteRevokedEventToPayload(nil); return err }},
|
||||
{"lobby application submitted", func() error { _, err := LobbyApplicationSubmittedEventToPayload(nil); return err }},
|
||||
{"lobby application approved", func() error { _, err := LobbyApplicationApprovedEventToPayload(nil); return err }},
|
||||
{"lobby application rejected", func() error { _, err := LobbyApplicationRejectedEventToPayload(nil); return err }},
|
||||
{"lobby membership removed", func() error { _, err := LobbyMembershipRemovedEventToPayload(nil); return err }},
|
||||
{"lobby membership blocked", func() error { _, err := LobbyMembershipBlockedEventToPayload(nil); return err }},
|
||||
{"lobby race name registered", func() error { _, err := LobbyRaceNameRegisteredEventToPayload(nil); return err }},
|
||||
{"lobby race name pending", func() error { _, err := LobbyRaceNamePendingEventToPayload(nil); return err }},
|
||||
{"lobby race name expired", func() error { _, err := LobbyRaceNameExpiredEventToPayload(nil); return err }},
|
||||
{"runtime image pull failed", func() error { _, err := RuntimeImagePullFailedEventToPayload(nil); return err }},
|
||||
{"runtime container start failed", func() error { _, err := RuntimeContainerStartFailedEventToPayload(nil); return err }},
|
||||
{"runtime start config invalid", func() error { _, err := RuntimeStartConfigInvalidEventToPayload(nil); return err }},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if err := tt.call(); err == nil {
|
||||
t.Fatal("expected error")
|
||||
}
|
||||
@@ -206,62 +192,25 @@ func TestNotificationPayloadDecodersRejectEmptyPayloads(t *testing.T) {
|
||||
name string
|
||||
call func() error
|
||||
}{
|
||||
{
|
||||
name: "game turn ready",
|
||||
call: func() error {
|
||||
_, err := PayloadToGameTurnReadyEvent(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "game finished",
|
||||
call: func() error {
|
||||
_, err := PayloadToGameFinishedEvent(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby application submitted",
|
||||
call: func() error {
|
||||
_, err := PayloadToLobbyApplicationSubmittedEvent(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby membership approved",
|
||||
call: func() error {
|
||||
_, err := PayloadToLobbyMembershipApprovedEvent(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby membership rejected",
|
||||
call: func() error {
|
||||
_, err := PayloadToLobbyMembershipRejectedEvent(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby invite created",
|
||||
call: func() error {
|
||||
_, err := PayloadToLobbyInviteCreatedEvent(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "lobby invite redeemed",
|
||||
call: func() error {
|
||||
_, err := PayloadToLobbyInviteRedeemedEvent(nil)
|
||||
return err
|
||||
},
|
||||
},
|
||||
{"lobby invite received", func() error { _, err := PayloadToLobbyInviteReceivedEvent(nil); return err }},
|
||||
{"lobby invite revoked", func() error { _, err := PayloadToLobbyInviteRevokedEvent(nil); return err }},
|
||||
{"lobby application submitted", func() error { _, err := PayloadToLobbyApplicationSubmittedEvent(nil); return err }},
|
||||
{"lobby application approved", func() error { _, err := PayloadToLobbyApplicationApprovedEvent(nil); return err }},
|
||||
{"lobby application rejected", func() error { _, err := PayloadToLobbyApplicationRejectedEvent(nil); return err }},
|
||||
{"lobby membership removed", func() error { _, err := PayloadToLobbyMembershipRemovedEvent(nil); return err }},
|
||||
{"lobby membership blocked", func() error { _, err := PayloadToLobbyMembershipBlockedEvent(nil); return err }},
|
||||
{"lobby race name registered", func() error { _, err := PayloadToLobbyRaceNameRegisteredEvent(nil); return err }},
|
||||
{"lobby race name pending", func() error { _, err := PayloadToLobbyRaceNamePendingEvent(nil); return err }},
|
||||
{"lobby race name expired", func() error { _, err := PayloadToLobbyRaceNameExpiredEvent(nil); return err }},
|
||||
{"runtime image pull failed", func() error { _, err := PayloadToRuntimeImagePullFailedEvent(nil); return err }},
|
||||
{"runtime container start failed", func() error { _, err := PayloadToRuntimeContainerStartFailedEvent(nil); return err }},
|
||||
{"runtime start config invalid", func() error { _, err := PayloadToRuntimeStartConfigInvalidEvent(nil); return err }},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if err := tt.call(); err == nil {
|
||||
t.Fatal("expected error")
|
||||
}
|
||||
@@ -269,7 +218,7 @@ func TestNotificationPayloadDecodersRejectEmptyPayloads(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestNotificationPayloadEncodersRejectMissingRequiredStrings(t *testing.T) {
|
||||
func TestNotificationPayloadEncodersRejectMissingUUIDs(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
tests := []struct {
|
||||
@@ -278,36 +227,29 @@ func TestNotificationPayloadEncodersRejectMissingRequiredStrings(t *testing.T) {
|
||||
want string
|
||||
}{
|
||||
{
|
||||
name: "game turn ready",
|
||||
call: func() error {
|
||||
_, err := GameTurnReadyEventToPayload(&GameTurnReadyEvent{})
|
||||
return err
|
||||
},
|
||||
name: "lobby invite received game_id",
|
||||
call: func() error { _, err := LobbyInviteReceivedEventToPayload(&LobbyInviteReceivedEvent{InviterUserID: testNotificationInviterID}); return err },
|
||||
want: "game_id is empty",
|
||||
},
|
||||
{
|
||||
name: "lobby application submitted",
|
||||
call: func() error {
|
||||
_, err := LobbyApplicationSubmittedEventToPayload(&LobbyApplicationSubmittedEvent{GameID: "game-1"})
|
||||
return err
|
||||
},
|
||||
want: "applicant_user_id is empty",
|
||||
},
|
||||
{
|
||||
name: "lobby invite created",
|
||||
call: func() error {
|
||||
_, err := LobbyInviteCreatedEventToPayload(&LobbyInviteCreatedEvent{GameID: "game-1"})
|
||||
return err
|
||||
},
|
||||
name: "lobby invite received inviter",
|
||||
call: func() error { _, err := LobbyInviteReceivedEventToPayload(&LobbyInviteReceivedEvent{GameID: testNotificationGameID}); return err },
|
||||
want: "inviter_user_id is empty",
|
||||
},
|
||||
{
|
||||
name: "lobby invite redeemed",
|
||||
call: func() error {
|
||||
_, err := LobbyInviteRedeemedEventToPayload(&LobbyInviteRedeemedEvent{GameID: "game-1"})
|
||||
return err
|
||||
},
|
||||
want: "invitee_user_id is empty",
|
||||
name: "lobby application submitted game_id",
|
||||
call: func() error { _, err := LobbyApplicationSubmittedEventToPayload(&LobbyApplicationSubmittedEvent{ApplicationID: testNotificationApplicationID}); return err },
|
||||
want: "game_id is empty",
|
||||
},
|
||||
{
|
||||
name: "lobby application submitted application_id",
|
||||
call: func() error { _, err := LobbyApplicationSubmittedEventToPayload(&LobbyApplicationSubmittedEvent{GameID: testNotificationGameID}); return err },
|
||||
want: "application_id is empty",
|
||||
},
|
||||
{
|
||||
name: "runtime image pull failed game_id",
|
||||
call: func() error { _, err := RuntimeImagePullFailedEventToPayload(&RuntimeImagePullFailedEvent{ImageRef: "x"}); return err },
|
||||
want: "game_id is empty",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -315,7 +257,6 @@ func TestNotificationPayloadEncodersRejectMissingRequiredStrings(t *testing.T) {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
err := tt.call()
|
||||
if err == nil {
|
||||
t.Fatal("expected error")
|
||||
@@ -327,7 +268,7 @@ func TestNotificationPayloadEncodersRejectMissingRequiredStrings(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestNotificationPayloadDecodersRejectMissingRequiredStrings(t *testing.T) {
|
||||
func TestNotificationPayloadDecodersRejectMissingUUIDs(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
tests := []struct {
|
||||
@@ -337,70 +278,42 @@ func TestNotificationPayloadDecodersRejectMissingRequiredStrings(t *testing.T) {
|
||||
want string
|
||||
}{
|
||||
{
|
||||
name: "game turn ready",
|
||||
name: "lobby invite received game_id",
|
||||
payload: func() []byte {
|
||||
builder := flatbuffers.NewBuilder(32)
|
||||
notificationfbs.GameTurnReadyEventStart(builder)
|
||||
offset := notificationfbs.GameTurnReadyEventEnd(builder)
|
||||
notificationfbs.FinishGameTurnReadyEventBuffer(builder, offset)
|
||||
notificationfbs.LobbyInviteReceivedEventStart(builder)
|
||||
offset := notificationfbs.LobbyInviteReceivedEventEnd(builder)
|
||||
notificationfbs.FinishLobbyInviteReceivedEventBuffer(builder, offset)
|
||||
return builder.FinishedBytes()
|
||||
},
|
||||
decode: func(data []byte) error {
|
||||
_, err := PayloadToGameTurnReadyEvent(data)
|
||||
return err
|
||||
},
|
||||
want: "game_id is missing",
|
||||
decode: func(data []byte) error { _, err := PayloadToLobbyInviteReceivedEvent(data); return err },
|
||||
want: "game_id is missing",
|
||||
},
|
||||
{
|
||||
name: "lobby application submitted",
|
||||
name: "lobby invite received inviter",
|
||||
payload: func() []byte {
|
||||
builder := flatbuffers.NewBuilder(32)
|
||||
notificationfbs.LobbyInviteReceivedEventStart(builder)
|
||||
notificationfbs.LobbyInviteReceivedEventAddGameId(builder, commonfbs.CreateUUID(builder, 1, 2))
|
||||
offset := notificationfbs.LobbyInviteReceivedEventEnd(builder)
|
||||
notificationfbs.FinishLobbyInviteReceivedEventBuffer(builder, offset)
|
||||
return builder.FinishedBytes()
|
||||
},
|
||||
decode: func(data []byte) error { _, err := PayloadToLobbyInviteReceivedEvent(data); return err },
|
||||
want: "inviter_user_id is missing",
|
||||
},
|
||||
{
|
||||
name: "lobby application submitted application_id",
|
||||
payload: func() []byte {
|
||||
builder := flatbuffers.NewBuilder(32)
|
||||
gameID := builder.CreateString("game-1")
|
||||
notificationfbs.LobbyApplicationSubmittedEventStart(builder)
|
||||
notificationfbs.LobbyApplicationSubmittedEventAddGameId(builder, gameID)
|
||||
notificationfbs.LobbyApplicationSubmittedEventAddGameId(builder, commonfbs.CreateUUID(builder, 1, 2))
|
||||
offset := notificationfbs.LobbyApplicationSubmittedEventEnd(builder)
|
||||
notificationfbs.FinishLobbyApplicationSubmittedEventBuffer(builder, offset)
|
||||
return builder.FinishedBytes()
|
||||
},
|
||||
decode: func(data []byte) error {
|
||||
_, err := PayloadToLobbyApplicationSubmittedEvent(data)
|
||||
return err
|
||||
},
|
||||
want: "applicant_user_id is missing",
|
||||
},
|
||||
{
|
||||
name: "lobby invite created",
|
||||
payload: func() []byte {
|
||||
builder := flatbuffers.NewBuilder(32)
|
||||
gameID := builder.CreateString("game-1")
|
||||
notificationfbs.LobbyInviteCreatedEventStart(builder)
|
||||
notificationfbs.LobbyInviteCreatedEventAddGameId(builder, gameID)
|
||||
offset := notificationfbs.LobbyInviteCreatedEventEnd(builder)
|
||||
notificationfbs.FinishLobbyInviteCreatedEventBuffer(builder, offset)
|
||||
return builder.FinishedBytes()
|
||||
},
|
||||
decode: func(data []byte) error {
|
||||
_, err := PayloadToLobbyInviteCreatedEvent(data)
|
||||
return err
|
||||
},
|
||||
want: "inviter_user_id is missing",
|
||||
},
|
||||
{
|
||||
name: "lobby invite redeemed",
|
||||
payload: func() []byte {
|
||||
builder := flatbuffers.NewBuilder(32)
|
||||
gameID := builder.CreateString("game-1")
|
||||
notificationfbs.LobbyInviteRedeemedEventStart(builder)
|
||||
notificationfbs.LobbyInviteRedeemedEventAddGameId(builder, gameID)
|
||||
offset := notificationfbs.LobbyInviteRedeemedEventEnd(builder)
|
||||
notificationfbs.FinishLobbyInviteRedeemedEventBuffer(builder, offset)
|
||||
return builder.FinishedBytes()
|
||||
},
|
||||
decode: func(data []byte) error {
|
||||
_, err := PayloadToLobbyInviteRedeemedEvent(data)
|
||||
return err
|
||||
},
|
||||
want: "invitee_user_id is missing",
|
||||
decode: func(data []byte) error { _, err := PayloadToLobbyApplicationSubmittedEvent(data); return err },
|
||||
want: "application_id is missing",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -408,7 +321,6 @@ func TestNotificationPayloadDecodersRejectMissingRequiredStrings(t *testing.T) {
|
||||
tt := tt
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
err := tt.decode(tt.payload())
|
||||
if err == nil {
|
||||
t.Fatal("expected error")
|
||||
|
||||
Reference in New Issue
Block a user