Skip to content

Commit 3988917

Browse files
authored
test(coderd): fix TestWorkspaceWatcher flake (#8612)
1 parent 80b940c commit 3988917

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

coderd/workspaces_test.go

+11-10
Original file line numberDiff line numberDiff line change
@@ -2121,20 +2121,14 @@ func TestWorkspaceWatcher(t *testing.T) {
21212121
return w.LatestBuild.Resources[0].Agents[0].Status == codersdk.WorkspaceAgentDisconnected
21222122
})
21232123

2124-
build := coderdtest.CreateWorkspaceBuild(t, client, workspace, database.WorkspaceTransitionStart)
2125-
wait("first is for the workspace build itself", nil)
2126-
err = client.CancelWorkspaceBuild(ctx, build.ID)
2127-
require.NoError(t, err)
2128-
wait("second is for the build cancel", nil)
2129-
21302124
err = client.UpdateWorkspace(ctx, workspace.ID, codersdk.UpdateWorkspaceRequest{
21312125
Name: "another",
21322126
})
21332127
require.NoError(t, err)
21342128
wait("update workspace name", nil)
21352129

21362130
// Add a new version that will fail.
2137-
updatedVersion := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
2131+
badVersion := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
21382132
Parse: echo.ParseComplete,
21392133
ProvisionPlan: echo.ProvisionComplete,
21402134
ProvisionApply: []*proto.Provision_Response{{
@@ -2147,16 +2141,16 @@ func TestWorkspaceWatcher(t *testing.T) {
21472141
}, func(req *codersdk.CreateTemplateVersionRequest) {
21482142
req.TemplateID = template.ID
21492143
})
2150-
coderdtest.AwaitTemplateVersionJob(t, client, updatedVersion.ID)
2144+
coderdtest.AwaitTemplateVersionJob(t, client, badVersion.ID)
21512145
err = client.UpdateActiveTemplateVersion(ctx, template.ID, codersdk.UpdateActiveTemplateVersion{
2152-
ID: updatedVersion.ID,
2146+
ID: badVersion.ID,
21532147
})
21542148
require.NoError(t, err)
21552149
wait("update active template version", nil)
21562150

21572151
// Build with the new template; should end up with a failure state.
21582152
_ = coderdtest.CreateWorkspaceBuild(t, client, workspace, database.WorkspaceTransitionStart, func(req *codersdk.CreateWorkspaceBuildRequest) {
2159-
req.TemplateVersionID = updatedVersion.ID
2153+
req.TemplateVersionID = badVersion.ID
21602154
})
21612155
// We want to verify pending state here, but it's possible that we reach
21622156
// failed state fast enough that we never see pending.
@@ -2166,6 +2160,13 @@ func TestWorkspaceWatcher(t *testing.T) {
21662160
wait("workspace build failed", func(w codersdk.Workspace) bool {
21672161
return w.LatestBuild.Status == codersdk.WorkspaceStatusFailed
21682162
})
2163+
2164+
closeFunc.Close()
2165+
build := coderdtest.CreateWorkspaceBuild(t, client, workspace, database.WorkspaceTransitionStart)
2166+
wait("first is for the workspace build itself", nil)
2167+
err = client.CancelWorkspaceBuild(ctx, build.ID)
2168+
require.NoError(t, err)
2169+
wait("second is for the build cancel", nil)
21692170
}
21702171

21712172
func mustLocation(t *testing.T, location string) *time.Location {

0 commit comments

Comments
 (0)