Skip to content

Commit e0f644c

Browse files
authored
test(coderd): fix TestWorkspaceWatcher hang waiting for update (coder#8992)
Signed-off-by: Spike Curtis <spike@coder.com>
1 parent 0d382d1 commit e0f644c

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

coderd/workspaces_test.go

+21-5
Original file line numberDiff line numberDiff line change
@@ -2121,9 +2121,14 @@ func TestWorkspaceWatcher(t *testing.T) {
21212121
case w, ok := <-wc:
21222122
require.True(t, ok, "watch channel closed: %s", event)
21232123
if ready == nil || ready(w) {
2124-
logger.Info(ctx, "done waiting for event", slog.F("event", event))
2124+
logger.Info(ctx, "done waiting for event",
2125+
slog.F("event", event),
2126+
slog.F("workspace", w))
21252127
return
21262128
}
2129+
logger.Info(ctx, "skipped update for event",
2130+
slog.F("event", event),
2131+
slog.F("workspace", w))
21272132
}
21282133
}
21292134
}
@@ -2194,12 +2199,23 @@ func TestWorkspaceWatcher(t *testing.T) {
21942199
})
21952200
// We want to verify pending state here, but it's possible that we reach
21962201
// failed state fast enough that we never see pending.
2202+
sawFailed := false
21972203
wait("workspace build pending or failed", func(w codersdk.Workspace) bool {
2198-
return w.LatestBuild.Status == codersdk.WorkspaceStatusPending || w.LatestBuild.Status == codersdk.WorkspaceStatusFailed
2199-
})
2200-
wait("workspace build failed", func(w codersdk.Workspace) bool {
2201-
return w.LatestBuild.Status == codersdk.WorkspaceStatusFailed
2204+
switch w.LatestBuild.Status {
2205+
case codersdk.WorkspaceStatusPending:
2206+
return true
2207+
case codersdk.WorkspaceStatusFailed:
2208+
sawFailed = true
2209+
return true
2210+
default:
2211+
return false
2212+
}
22022213
})
2214+
if !sawFailed {
2215+
wait("workspace build failed", func(w codersdk.Workspace) bool {
2216+
return w.LatestBuild.Status == codersdk.WorkspaceStatusFailed
2217+
})
2218+
}
22032219

22042220
closeFunc.Close()
22052221
build := coderdtest.CreateWorkspaceBuild(t, client, workspace, database.WorkspaceTransitionStart)

0 commit comments

Comments
 (0)