Skip to content

Commit 0c281d9

Browse files
committed
test: add WorkspaceApps functionality tests
Add comprehensive tests for the workspace_apps feature: - Test that workspace_apps values are correctly stored and retrieved - Test default behavior when workspace_apps is not specified - Follow existing test patterns for DisplayApps functionality
1 parent 743975e commit 0c281d9

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

coderd/provisionerdserver/provisionerdserver_test.go

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3167,6 +3167,63 @@ func TestInsertWorkspaceResource(t *testing.T) {
31673167
require.Equal(t, []database.DisplayApp{}, agent.DisplayApps)
31683168
})
31693169

3170+
t.Run("WorkspaceApps", func(t *testing.T) {
3171+
t.Parallel()
3172+
db, _ := dbtestutil.NewDB(t)
3173+
dbtestutil.DisableForeignKeysAndTriggers(t, db)
3174+
job := uuid.New()
3175+
err := insert(db, job, &sdkproto.Resource{
3176+
Name: "something",
3177+
Type: "aws_instance",
3178+
Agents: []*sdkproto.Agent{{
3179+
Name: "dev",
3180+
DisplayApps: &sdkproto.DisplayApps{
3181+
Vscode: true,
3182+
WebTerminal: true,
3183+
SshHelper: true,
3184+
},
3185+
WorkspaceApps: []string{"vscode", "custom-app"},
3186+
}},
3187+
})
3188+
require.NoError(t, err)
3189+
resources, err := db.GetWorkspaceResourcesByJobID(ctx, job)
3190+
require.NoError(t, err)
3191+
require.Len(t, resources, 1)
3192+
agents, err := db.GetWorkspaceAgentsByResourceIDs(ctx, []uuid.UUID{resources[0].ID})
3193+
require.NoError(t, err)
3194+
require.Len(t, agents, 1)
3195+
agent := agents[0]
3196+
require.Equal(t, []string{"vscode", "custom-app"}, agent.WorkspaceApps)
3197+
})
3198+
3199+
t.Run("WorkspaceAppsEmpty", func(t *testing.T) {
3200+
t.Parallel()
3201+
db, _ := dbtestutil.NewDB(t)
3202+
dbtestutil.DisableForeignKeysAndTriggers(t, db)
3203+
job := uuid.New()
3204+
err := insert(db, job, &sdkproto.Resource{
3205+
Name: "something",
3206+
Type: "aws_instance",
3207+
Agents: []*sdkproto.Agent{{
3208+
Name: "dev",
3209+
DisplayApps: &sdkproto.DisplayApps{
3210+
Vscode: true,
3211+
},
3212+
// WorkspaceApps not specified, should be nil
3213+
}},
3214+
})
3215+
require.NoError(t, err)
3216+
resources, err := db.GetWorkspaceResourcesByJobID(ctx, job)
3217+
require.NoError(t, err)
3218+
require.Len(t, resources, 1)
3219+
agents, err := db.GetWorkspaceAgentsByResourceIDs(ctx, []uuid.UUID{resources[0].ID})
3220+
require.NoError(t, err)
3221+
require.Len(t, agents, 1)
3222+
agent := agents[0]
3223+
// When WorkspaceApps is not specified, it should be nil (default behavior)
3224+
require.Nil(t, agent.WorkspaceApps)
3225+
})
3226+
31703227
t.Run("ResourcesMonitoring", func(t *testing.T) {
31713228
t.Parallel()
31723229
db, _ := dbtestutil.NewDB(t)

0 commit comments

Comments
 (0)