Skip to content

Commit 74b749b

Browse files
authored
chore(coderd): add test to assert agent token invalid when workspace deleted (#12290)
1 parent 7eed40b commit 74b749b

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

coderd/workspaceagents_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,33 @@ func TestWorkspaceAgentConnectRPC(t *testing.T) {
406406
require.ErrorAs(t, err, &sdkErr)
407407
require.Equal(t, http.StatusForbidden, sdkErr.StatusCode())
408408
})
409+
410+
t.Run("FailDeleted", func(t *testing.T) {
411+
t.Parallel()
412+
413+
ctx := testutil.Context(t, testutil.WaitLong)
414+
client, db := coderdtest.NewWithDatabase(t, nil)
415+
user := coderdtest.CreateFirstUser(t, client)
416+
// Given: a workspace exists
417+
seed := database.Workspace{OrganizationID: user.OrganizationID, OwnerID: user.UserID}
418+
wsb := dbfake.WorkspaceBuild(t, db, seed).WithAgent().Do()
419+
// When: the workspace is marked as soft-deleted
420+
// nolint:gocritic // this is a test
421+
err := db.UpdateWorkspaceDeletedByID(
422+
dbauthz.AsProvisionerd(ctx),
423+
database.UpdateWorkspaceDeletedByIDParams{ID: wsb.Workspace.ID, Deleted: true},
424+
)
425+
require.NoError(t, err)
426+
// Then: the agent token should no longer be valid
427+
agentClient := agentsdk.New(client.URL)
428+
agentClient.SetSessionToken(wsb.AgentToken)
429+
_, err = agentClient.ConnectRPC(ctx)
430+
require.Error(t, err)
431+
var sdkErr *codersdk.Error
432+
require.ErrorAs(t, err, &sdkErr)
433+
// Then: we should get a 401 Unauthorized response
434+
require.Equal(t, http.StatusUnauthorized, sdkErr.StatusCode())
435+
})
409436
}
410437

411438
func TestWorkspaceAgentTailnet(t *testing.T) {

0 commit comments

Comments
 (0)