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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy