Skip to content

Commit 8e2d86e

Browse files
committed
add provisionerd tests
1 parent 898bbaf commit 8e2d86e

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

coderd/database/dbgen/dbgen.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,17 @@ func WorkspaceAgentScriptTiming(t testing.TB, db database.Store, orig database.W
255255
panic("failed to insert workspace agent script timing")
256256
}
257257

258+
func WorkspaceAgentDevcontainer(t testing.TB, db database.Store, orig database.WorkspaceAgentDevcontainer) database.WorkspaceAgentDevcontainer {
259+
devcontainers, err := db.InsertWorkspaceAgentDevcontainers(genCtx, database.InsertWorkspaceAgentDevcontainersParams{
260+
WorkspaceAgentID: takeFirst(orig.WorkspaceAgentID, uuid.New()),
261+
ID: []uuid.UUID{takeFirst(orig.ID, uuid.New())},
262+
WorkspaceFolder: []string{takeFirst(orig.WorkspaceFolder, "")},
263+
ConfigPath: []string{takeFirst(orig.ConfigPath, "")},
264+
})
265+
require.NoError(t, err, "insert workspace agent devcontainer")
266+
return devcontainers[0]
267+
}
268+
258269
func Workspace(t testing.TB, db database.Store, orig database.WorkspaceTable) database.WorkspaceTable {
259270
t.Helper()
260271

coderd/provisionerdserver/provisionerdserver_test.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2190,6 +2190,37 @@ func TestInsertWorkspaceResource(t *testing.T) {
21902190
require.Equal(t, int32(50), volMonitors[1].Threshold)
21912191
require.Equal(t, "/volume2", volMonitors[1].Path)
21922192
})
2193+
2194+
t.Run("Devcontainers", func(t *testing.T) {
2195+
t.Parallel()
2196+
db := dbmem.New()
2197+
job := uuid.New()
2198+
err := insert(db, job, &sdkproto.Resource{
2199+
Name: "something",
2200+
Type: "aws_instance",
2201+
Agents: []*sdkproto.Agent{{
2202+
Name: "dev",
2203+
Devcontainers: []*sdkproto.Devcontainer{
2204+
{WorkspaceFolder: "/workspace1"},
2205+
{WorkspaceFolder: "/workspace2", ConfigPath: "/workspace2/.devcontainer/devcontainer.json"},
2206+
},
2207+
}},
2208+
})
2209+
require.NoError(t, err)
2210+
resources, err := db.GetWorkspaceResourcesByJobID(ctx, job)
2211+
require.NoError(t, err)
2212+
require.Len(t, resources, 1)
2213+
agents, err := db.GetWorkspaceAgentsByResourceIDs(ctx, []uuid.UUID{resources[0].ID})
2214+
require.NoError(t, err)
2215+
require.Len(t, agents, 1)
2216+
agent := agents[0]
2217+
devcontainers, err := db.GetWorkspaceAgentDevcontainersByWorkspaceAgentID(ctx, agent.ID)
2218+
require.NoError(t, err)
2219+
require.Len(t, devcontainers, 2)
2220+
require.Equal(t, "/workspace1", devcontainers[0].WorkspaceFolder)
2221+
require.Equal(t, "/workspace2", devcontainers[1].WorkspaceFolder)
2222+
require.Equal(t, "/workspace2/.devcontainer/devcontainer.json", devcontainers[1].ConfigPath)
2223+
})
21932224
}
21942225

21952226
func TestNotifications(t *testing.T) {

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy