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

Function TestProvisioners_Golden

cli/provisioners_test.go:28–316  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

26)
27
28func TestProvisioners_Golden(t *testing.T) {
29 t.Parallel()
30
31 // Replace UUIDs with predictable values for golden files.
32 replace := make(map[string]string)
33 updateReplaceUUIDs := func(coderdAPI *coderd.API) {
34 systemCtx := dbauthz.AsSystemRestricted(context.Background())
35 provisioners, err := coderdAPI.Database.GetProvisionerDaemons(systemCtx)
36 require.NoError(t, err)
37 slices.SortFunc(provisioners, func(a, b database.ProvisionerDaemon) int {
38 return cmp.Or(
39 a.CreatedAt.Compare(b.CreatedAt),
40 bytes.Compare(a.ID[:], b.ID[:]),
41 )
42 })
43 pIdx := 0
44 for _, p := range provisioners {
45 if _, ok := replace[p.ID.String()]; !ok {
46 replace[p.ID.String()] = fmt.Sprintf("00000000-0000-0000-aaaa-%012d", pIdx)
47 pIdx++
48 }
49 }
50 jobs, err := coderdAPI.Database.GetProvisionerJobsCreatedAfter(systemCtx, time.Time{})
51 require.NoError(t, err)
52 slices.SortFunc(jobs, func(a, b database.ProvisionerJob) int {
53 return cmp.Or(
54 a.CreatedAt.Compare(b.CreatedAt),
55 bytes.Compare(a.ID[:], b.ID[:]),
56 )
57 })
58 jIdx := 0
59 for _, j := range jobs {
60 if _, ok := replace[j.ID.String()]; !ok {
61 replace[j.ID.String()] = fmt.Sprintf("00000000-0000-0000-bbbb-%012d", jIdx)
62 jIdx++
63 }
64 }
65 }
66
67 db, ps := dbtestutil.NewDB(t,
68 dbtestutil.WithDumpOnFailure(),
69 //nolint:gocritic // Use UTC for consistent timestamp length in golden files.
70 dbtestutil.WithTimezone("UTC"),
71 )
72 client, _, coderdAPI := coderdtest.NewWithAPI(t, &coderdtest.Options{
73 IncludeProvisionerDaemon: false,
74 Database: db,
75 Pubsub: ps,
76 })
77 owner := coderdtest.CreateFirstUser(t, client)
78 templateAdminClient, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.ScopedRoleOrgTemplateAdmin(owner.OrganizationID))
79 _, member := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
80
81 // Create initial resources with a running provisioner.
82 firstProvisioner := coderdtest.NewTaggedProvisionerDaemon(t, coderdAPI, "default-provisioner", map[string]string{"owner": "", "scope": "organization"})
83 t.Cleanup(func() { _ = firstProvisioner.Close() })
84 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, completeWithAgent())
85 version = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)

Callers

nothing calls this directly

Calls 15

AsSystemRestrictedFunction · 0.92
NewDBFunction · 0.92
WithDumpOnFailureFunction · 0.92
WithTimezoneFunction · 0.92
NewWithAPIFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92

Tested by

no test coverage detected