MCPcopy Index your code
hub / github.com/coder/coder / TestPubsubWorkspaceClaimPublisher

Function TestPubsubWorkspaceClaimPublisher

coderd/prebuilds/claim_test.go:19–64  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

17)
18
19func TestPubsubWorkspaceClaimPublisher(t *testing.T) {
20 t.Parallel()
21 t.Run("published claim is received by a listener for the same workspace", func(t *testing.T) {
22 t.Parallel()
23
24 ctx := testutil.Context(t, testutil.WaitShort)
25 logger := testutil.Logger(t)
26 ps := pubsub.NewInMemory()
27 workspaceID := uuid.New()
28 publisher := prebuilds.NewPubsubWorkspaceClaimPublisher(ps)
29 listener := prebuilds.NewPubsubWorkspaceClaimListener(ps, logger)
30
31 events, cancel, err := listener.ListenForWorkspaceClaims(ctx, workspaceID)
32 require.NoError(t, err)
33 defer cancel()
34
35 userID := uuid.New()
36 claim := agentsdk.ReinitializationEvent{
37 WorkspaceID: workspaceID,
38 Reason: agentsdk.ReinitializeReasonPrebuildClaimed,
39 OwnerID: userID,
40 }
41 err = publisher.PublishWorkspaceClaim(claim)
42 require.NoError(t, err)
43
44 gotEvent := testutil.RequireReceive(ctx, t, events)
45 require.Equal(t, workspaceID, gotEvent.WorkspaceID)
46 require.Equal(t, claim.Reason, gotEvent.Reason)
47 require.Equal(t, userID, gotEvent.OwnerID)
48 })
49
50 t.Run("fail to publish claim", func(t *testing.T) {
51 t.Parallel()
52
53 ps := &brokenPubsub{}
54
55 publisher := prebuilds.NewPubsubWorkspaceClaimPublisher(ps)
56 claim := agentsdk.ReinitializationEvent{
57 WorkspaceID: uuid.New(),
58 Reason: agentsdk.ReinitializeReasonPrebuildClaimed,
59 }
60
61 err := publisher.PublishWorkspaceClaim(claim)
62 require.ErrorContains(t, err, "failed to trigger prebuilt workspace agent reinitialization")
63 })
64}
65
66func TestPubsubWorkspaceClaimListener(t *testing.T) {
67 t.Parallel()

Callers

nothing calls this directly

Calls 11

PublishWorkspaceClaimMethod · 0.95
ContextFunction · 0.92
LoggerFunction · 0.92
NewInMemoryFunction · 0.92
RequireReceiveFunction · 0.92
RunMethod · 0.65
NewMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected