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

Function TestStart

enterprise/cli/start_test.go:21–215  ·  view source on GitHub ↗

TestStart also tests restart since the tests are virtually identical.

(t *testing.T)

Source from the content-addressed store, hash-verified

19
20// TestStart also tests restart since the tests are virtually identical.
21func TestStart(t *testing.T) {
22 t.Parallel()
23
24 t.Run("RequireActiveVersion", func(t *testing.T) {
25 t.Parallel()
26
27 ctx := testutil.Context(t, testutil.WaitMedium)
28 ownerClient, owner := coderdenttest.New(t, &coderdenttest.Options{
29 Options: &coderdtest.Options{
30 IncludeProvisionerDaemon: true,
31 },
32 LicenseOptions: &coderdenttest.LicenseOptions{
33 Features: license.Features{
34 codersdk.FeatureAccessControl: 1,
35 codersdk.FeatureTemplateRBAC: 1,
36 codersdk.FeatureAdvancedTemplateScheduling: 1,
37 },
38 },
39 })
40 templateAdminClient, templateAdmin := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID, rbac.RoleTemplateAdmin())
41
42 // Create an initial version.
43 oldVersion := coderdtest.CreateTemplateVersion(t, templateAdminClient, owner.OrganizationID, nil)
44 // Create a template that mandates the promoted version.
45 // This should be enforced for everyone except template admins.
46 template := coderdtest.CreateTemplate(t, templateAdminClient, owner.OrganizationID, oldVersion.ID)
47 coderdtest.AwaitTemplateVersionJobCompleted(t, templateAdminClient, oldVersion.ID)
48 require.Equal(t, oldVersion.ID, template.ActiveVersionID)
49 template = coderdtest.UpdateTemplateMeta(t, templateAdminClient, template.ID, codersdk.UpdateTemplateMeta{
50 RequireActiveVersion: ptr.Ref(true),
51 })
52 require.True(t, template.RequireActiveVersion)
53
54 // Create a new version that we will promote.
55 activeVersion := coderdtest.CreateTemplateVersion(t, templateAdminClient, owner.OrganizationID, nil, func(ctvr *codersdk.CreateTemplateVersionRequest) {
56 ctvr.TemplateID = template.ID
57 })
58 coderdtest.AwaitTemplateVersionJobCompleted(t, templateAdminClient, activeVersion.ID)
59 err := templateAdminClient.UpdateActiveTemplateVersion(ctx, template.ID, codersdk.UpdateActiveTemplateVersion{
60 ID: activeVersion.ID,
61 })
62 require.NoError(t, err)
63
64 templateACLAdminClient, templateACLAdmin := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID)
65 templateGroupACLAdminClient, templateGroupACLAdmin := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID)
66 memberClient, member := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID)
67
68 // Create a group so we can also test group template admin ownership.
69 // Add the user who gains template admin via group membership.
70 group := coderdtest.CreateGroup(t, ownerClient, owner.OrganizationID, "test", templateGroupACLAdmin)
71
72 // Update the template for both users and groups.
73 err = ownerClient.UpdateTemplateACL(ctx, template.ID, codersdk.UpdateTemplateACL{
74 UserPerms: map[string]codersdk.TemplateRole{
75 templateACLAdmin.ID.String(): codersdk.TemplateRoleAdmin,
76 },
77 GroupPerms: map[string]codersdk.TemplateRole{
78 group.ID.String(): codersdk.TemplateRoleAdmin,

Callers

nothing calls this directly

Calls 15

ContextFunction · 0.92
NewFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleTemplateAdminFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
UpdateTemplateMetaFunction · 0.92
RefFunction · 0.92
CreateGroupFunction · 0.92
RandomUsernameFunction · 0.92

Tested by

no test coverage detected