Skip to content

Commit e708b92

Browse files
test pubsub messages
1 parent adaa562 commit e708b92

File tree

1 file changed

+73
-20
lines changed

1 file changed

+73
-20
lines changed

internal/graph/teams_test.go

+73-20
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/nais/api/internal/logger"
2222
"github.com/nais/api/internal/slug"
2323
"github.com/nais/api/internal/usersync"
24+
"github.com/nais/api/pkg/protoapi"
2425
"github.com/sirupsen/logrus/hooks/test"
2526
"github.com/stretchr/testify/assert"
2627
"github.com/stretchr/testify/mock"
@@ -109,11 +110,9 @@ func TestMutationResolver_CreateTeam(t *testing.T) {
109110
Return(nil).
110111
Once()
111112

112-
_, psClient, closer := getPubsubServerAndClient(ctx, "some-id", "topic-id")
113+
psServer, psClient, closer := getPubsubServerAndClient(ctx, "some-id", "topic-id")
113114
defer closer()
114115

115-
// TODO: check message sent to the pubsub topic
116-
117116
auditLogger := auditlogger.NewAuditLoggerForTesting()
118117
returnedTeam, err := graph.
119118
NewResolver(nil, nil, nil, nil, db, tenantDomain, userSync, auditLogger, nil, userSyncRuns, psClient.Topic("topic-id"), log).
@@ -123,15 +122,46 @@ func TestMutationResolver_CreateTeam(t *testing.T) {
123122
Purpose: " some purpose ",
124123
SlackChannel: slackChannel,
125124
})
126-
assert.NoError(t, err)
125+
if err != nil {
126+
t.Fatalf("unexpected error: %v", err)
127+
}
128+
129+
if createdTeam.Slug != returnedTeam.Slug {
130+
t.Errorf("expected team slug %q, got %q", createdTeam.Slug, returnedTeam.Slug)
131+
}
132+
133+
if len(auditLogger.Entries()) != 1 {
134+
t.Fatalf("expected 1 audit log entry, got %d", len(auditLogger.Entries()))
135+
}
127136

128-
assert.Equal(t, createdTeam.Slug, returnedTeam.Slug)
129-
assert.Len(t, auditLogger.Entries(), 1)
130137
entry := auditLogger.Entries()[0]
131-
assert.Equal(t, ctx, entry.Context)
132-
assert.Equal(t, string(createdTeam.Slug), entry.Targets[0].Identifier)
133-
assert.Equal(t, user, entry.Fields.Actor.User)
134-
assert.Equal(t, "Team created", entry.Message)
138+
139+
if ctx != entry.Context {
140+
t.Errorf("incorrect context in audit log entry")
141+
}
142+
143+
if string(createdTeam.Slug) != entry.Targets[0].Identifier {
144+
t.Errorf("expected team slug %q, got %q", createdTeam.Slug, entry.Targets[0].Identifier)
145+
}
146+
147+
if user != entry.Fields.Actor.User {
148+
t.Errorf("incorrect actor in audit log entry")
149+
}
150+
151+
if expected := "Team created"; entry.Message != expected {
152+
t.Errorf("expected message %q, got %q", expected, entry.Message)
153+
}
154+
155+
psMessages := psServer.Messages()
156+
if len(psMessages) != 1 {
157+
t.Fatalf("expected 1 message, got %d", len(psMessages))
158+
}
159+
160+
msg := psMessages[0]
161+
if msg.Attributes["EventType"] != protoapi.EventTypes_EVENT_TEAM_UPDATED.String() {
162+
t.Errorf("expected event type %s, got %s", protoapi.EventTypes_EVENT_TEAM_UPDATED.String(), msg.Attributes["EventType"])
163+
164+
}
135165
})
136166

137167
t.Run("calling with SA, adds sa as team owner", func(t *testing.T) {
@@ -160,11 +190,9 @@ func TestMutationResolver_CreateTeam(t *testing.T) {
160190
Return(nil).
161191
Once()
162192

163-
_, psClient, closer := getPubsubServerAndClient(ctx, "some-id", "topic-id")
193+
psServer, psClient, closer := getPubsubServerAndClient(ctx, "some-id", "topic-id")
164194
defer closer()
165195

166-
// TODO: check message sent to the pubsub topic
167-
168196
auditLogger := auditlogger.NewAuditLoggerForTesting()
169197
returnedTeam, err := graph.
170198
NewResolver(nil, nil, nil, nil, db, tenantDomain, userSync, auditLogger, nil, userSyncRuns, psClient.Topic("topic-id"), log).
@@ -174,14 +202,39 @@ func TestMutationResolver_CreateTeam(t *testing.T) {
174202
SlackChannel: slackChannel,
175203
})
176204

177-
assert.NoError(t, err)
178-
assert.Equal(t, createdTeam.Slug, returnedTeam.Slug)
179-
assert.Len(t, auditLogger.Entries(), 1)
205+
if err != nil {
206+
t.Fatalf("unexpected error: %v", err)
207+
}
208+
209+
if createdTeam.Slug != returnedTeam.Slug {
210+
t.Errorf("expected team slug %q, got %q", createdTeam.Slug, returnedTeam.Slug)
211+
}
212+
213+
if len(auditLogger.Entries()) != 1 {
214+
t.Fatalf("expected 1 audit log entry, got %d", len(auditLogger.Entries()))
215+
}
216+
180217
entry := auditLogger.Entries()[0]
181-
assert.Equal(t, saCtx, entry.Context)
182-
assert.Equal(t, string(createdTeam.Slug), entry.Targets[0].Identifier)
183-
assert.Equal(t, serviceAccount, entry.Fields.Actor.User)
184-
assert.Equal(t, "Team created", entry.Message)
218+
if saCtx != entry.Context {
219+
t.Errorf("incorrect context in audit log entry")
220+
}
221+
222+
if string(createdTeam.Slug) != entry.Targets[0].Identifier {
223+
t.Errorf("expected team slug %q, got %q", createdTeam.Slug, entry.Targets[0].Identifier)
224+
}
225+
226+
if serviceAccount != entry.Fields.Actor.User {
227+
t.Errorf("incorrect actor in audit log entry")
228+
}
229+
230+
if expected := "Team created"; entry.Message != expected {
231+
t.Errorf("expected message %q, got %q", expected, entry.Message)
232+
}
233+
234+
psMessages := psServer.Messages()
235+
if len(psMessages) != 1 {
236+
t.Fatalf("expected 1 message, got %d", len(psMessages))
237+
}
185238
})
186239
}
187240

0 commit comments

Comments
 (0)