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

Function TestInsertWorkspaceAgentDevcontainers

coderd/database/querier_test.go:10695–10790  ·  view source on GitHub ↗

Our `InsertWorkspaceAgentDevcontainers` query should ideally be `[]uuid.NullUUID` but unfortunately sqlc infers it as `[]uuid.UUID`. To ensure we don't insert a `uuid.Nil`, the query inserts NULL when passed with `uuid.Nil`. This test ensures we keep this behavior without regression.

(t *testing.T)

Source from the content-addressed store, hash-verified

10693// sqlc infers it as `[]uuid.UUID`. To ensure we don't insert a `uuid.Nil`, the query inserts NULL when
10694// passed with `uuid.Nil`. This test ensures we keep this behavior without regression.
10695func TestInsertWorkspaceAgentDevcontainers(t *testing.T) {
10696 t.Parallel()
10697
10698 testCases := []struct {
10699 name string
10700 validSubagent []bool
10701 }{
10702 {"BothValid", []bool{true, true}},
10703 {"FirstValidSecondInvalid", []bool{true, false}},
10704 {"FirstInvalidSecondValid", []bool{false, true}},
10705 {"BothInvalid", []bool{false, false}},
10706 }
10707
10708 for _, tc := range testCases {
10709 t.Run(tc.name, func(t *testing.T) {
10710 t.Parallel()
10711
10712 var (
10713 db, _ = dbtestutil.NewDB(t)
10714 org = dbgen.Organization(t, db, database.Organization{})
10715 job = dbgen.ProvisionerJob(t, db, nil, database.ProvisionerJob{
10716 Type: database.ProvisionerJobTypeTemplateVersionImport,
10717 OrganizationID: org.ID,
10718 })
10719 resource = dbgen.WorkspaceResource(t, db, database.WorkspaceResource{JobID: job.ID})
10720 agent = dbgen.WorkspaceAgent(t, db, database.WorkspaceAgent{ResourceID: resource.ID})
10721 )
10722
10723 ids := make([]uuid.UUID, len(tc.validSubagent))
10724 names := make([]string, len(tc.validSubagent))
10725 workspaceFolders := make([]string, len(tc.validSubagent))
10726 configPaths := make([]string, len(tc.validSubagent))
10727 subagentIDs := make([]uuid.UUID, len(tc.validSubagent))
10728
10729 for i, valid := range tc.validSubagent {
10730 ids[i] = uuid.New()
10731 names[i] = fmt.Sprintf("test-devcontainer-%d", i)
10732 workspaceFolders[i] = fmt.Sprintf("/workspace%d", i)
10733 configPaths[i] = fmt.Sprintf("/workspace%d/.devcontainer/devcontainer.json", i)
10734
10735 if valid {
10736 subagentIDs[i] = dbgen.WorkspaceAgent(t, db, database.WorkspaceAgent{
10737 ResourceID: resource.ID,
10738 ParentID: uuid.NullUUID{UUID: agent.ID, Valid: true},
10739 }).ID
10740 } else {
10741 subagentIDs[i] = uuid.Nil
10742 }
10743 }
10744
10745 ctx := testutil.Context(t, testutil.WaitShort)
10746
10747 // Given: We insert multiple devcontainer records.
10748 devcontainers, err := db.InsertWorkspaceAgentDevcontainers(ctx, database.InsertWorkspaceAgentDevcontainersParams{
10749 WorkspaceAgentID: agent.ID,
10750 CreatedAt: dbtime.Now(),
10751 ID: ids,
10752 Name: names,

Callers

nothing calls this directly

Calls 14

NewDBFunction · 0.92
OrganizationFunction · 0.92
ProvisionerJobFunction · 0.92
WorkspaceResourceFunction · 0.92
WorkspaceAgentFunction · 0.92
ContextFunction · 0.92
NowFunction · 0.92
CompareMethod · 0.80
RunMethod · 0.65
NewMethod · 0.65

Tested by

no test coverage detected