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

Function TestTemplateVersionsPromote

cli/templateversions_test.go:74–154  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

72}
73
74func TestTemplateVersionsPromote(t *testing.T) {
75 t.Parallel()
76
77 t.Run("PromoteVersion", func(t *testing.T) {
78 t.Parallel()
79 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
80 owner := coderdtest.CreateFirstUser(t, client)
81
82 // Create a template with two versions
83 version1 := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, completeWithAgent())
84 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version1.ID)
85
86 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version1.ID)
87
88 version2 := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, completeWithAgent(), func(ctvr *codersdk.CreateTemplateVersionRequest) {
89 ctvr.TemplateID = template.ID
90 ctvr.Name = "2.0.0"
91 })
92 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version2.ID)
93
94 // Ensure version1 is active
95 updatedTemplate, err := client.Template(context.Background(), template.ID)
96 assert.NoError(t, err)
97 assert.Equal(t, version1.ID, updatedTemplate.ActiveVersionID)
98
99 args := []string{
100 "templates",
101 "versions",
102 "promote",
103 "--template", template.Name,
104 "--template-version", version2.Name,
105 }
106
107 inv, root := clitest.New(t, args...)
108 //nolint:gocritic // Creating a workspace for another user requires owner permissions.
109 clitest.SetupConfig(t, client, root)
110 errC := make(chan error)
111 go func() {
112 errC <- inv.Run()
113 }()
114
115 require.NoError(t, <-errC)
116
117 // Verify that version2 is now the active version
118 updatedTemplate, err = client.Template(context.Background(), template.ID)
119 require.NoError(t, err)
120 assert.Equal(t, version2.ID, updatedTemplate.ActiveVersionID)
121 })
122
123 t.Run("PromoteNonExistentVersion", func(t *testing.T) {
124 t.Parallel()
125 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
126 owner := coderdtest.CreateFirstUser(t, client)
127 member, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
128
129 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
130 _ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
131 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)

Callers

nothing calls this directly

Calls 14

NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
NewFunction · 0.92
SetupConfigFunction · 0.92
CreateAnotherUserFunction · 0.92
completeWithAgentFunction · 0.85
TemplateMethod · 0.80
RunMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected