Skip to content

Commit dc528ac

Browse files
committed
chore: TestUpdate: remove extraneous cli invocation
1 parent 44d4646 commit dc528ac

File tree

1 file changed

+23
-21
lines changed

1 file changed

+23
-21
lines changed

cli/update_test.go

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -34,49 +34,51 @@ func TestUpdate(t *testing.T) {
3434
t.Run("OK", func(t *testing.T) {
3535
t.Parallel()
3636

37+
// Given: a workspace exists on the latest template version.
3738
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
3839
owner := coderdtest.CreateFirstUser(t, client)
39-
member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
40+
member, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
4041
version1 := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
4142

4243
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version1.ID)
4344
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version1.ID)
4445

45-
inv, root := clitest.New(t, "create",
46-
"my-workspace",
47-
"--template", template.Name,
48-
"-y",
49-
)
50-
clitest.SetupConfig(t, member, root)
51-
52-
err := inv.Run()
53-
require.NoError(t, err)
54-
55-
ws, err := client.WorkspaceByOwnerAndName(context.Background(), memberUser.Username, "my-workspace", codersdk.WorkspaceOptions{})
56-
require.NoError(t, err)
57-
require.Equal(t, version1.ID.String(), ws.LatestBuild.TemplateVersionID.String())
46+
ws := coderdtest.CreateWorkspace(t, member, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
47+
cwr.Name = "my-workspace"
48+
})
49+
require.False(t, ws.Outdated, "newly created workspace with active template version must not be outdated")
5850

51+
// Given: the template version is updated
5952
version2 := coderdtest.UpdateTemplateVersion(t, client, owner.OrganizationID, &echo.Responses{
6053
Parse: echo.ParseComplete,
6154
ProvisionApply: echo.ApplyComplete,
6255
ProvisionPlan: echo.PlanComplete,
6356
}, template.ID)
6457
_ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version2.ID)
6558

66-
err = client.UpdateActiveTemplateVersion(context.Background(), template.ID, codersdk.UpdateActiveTemplateVersion{
59+
ctx := testutil.Context(t, testutil.WaitShort)
60+
err := client.UpdateActiveTemplateVersion(ctx, template.ID, codersdk.UpdateActiveTemplateVersion{
6761
ID: version2.ID,
6862
})
69-
require.NoError(t, err)
63+
require.NoError(t, err, "failed to update active template version")
7064

71-
inv, root = clitest.New(t, "update", ws.Name)
65+
// Then: the workspace is marked as 'outdated'
66+
ws, err = member.WorkspaceByOwnerAndName(ctx, codersdk.Me, "my-workspace", codersdk.WorkspaceOptions{})
67+
require.NoError(t, err, "member failed to get workspace they themselves own")
68+
require.True(t, ws.Outdated, "workspace must be outdated after template version update")
69+
70+
// When: the workspace is updated
71+
inv, root := clitest.New(t, "update", ws.Name)
7272
clitest.SetupConfig(t, member, root)
7373

7474
err = inv.Run()
75-
require.NoError(t, err)
75+
require.NoError(t, err, "update command failed")
7676

77-
ws, err = member.WorkspaceByOwnerAndName(context.Background(), memberUser.Username, "my-workspace", codersdk.WorkspaceOptions{})
78-
require.NoError(t, err)
79-
require.Equal(t, version2.ID.String(), ws.LatestBuild.TemplateVersionID.String())
77+
// Then: the workspace is no longer 'outdated'
78+
ws, err = member.WorkspaceByOwnerAndName(ctx, codersdk.Me, "my-workspace", codersdk.WorkspaceOptions{})
79+
require.NoError(t, err, "member failed to get workspace they themselves own after update")
80+
require.Equal(t, version2.ID.String(), ws.LatestBuild.TemplateVersionID.String(), "workspace must have latest template version after update")
81+
require.False(t, ws.Outdated, "workspace must not be outdated after update")
8082
})
8183
}
8284

0 commit comments

Comments
 (0)