@@ -2121,9 +2121,14 @@ func TestWorkspaceWatcher(t *testing.T) {
2121
2121
case w , ok := <- wc :
2122
2122
require .True (t , ok , "watch channel closed: %s" , event )
2123
2123
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 ))
2125
2127
return
2126
2128
}
2129
+ logger .Info (ctx , "skipped update for event" ,
2130
+ slog .F ("event" , event ),
2131
+ slog .F ("workspace" , w ))
2127
2132
}
2128
2133
}
2129
2134
}
@@ -2194,12 +2199,23 @@ func TestWorkspaceWatcher(t *testing.T) {
2194
2199
})
2195
2200
// We want to verify pending state here, but it's possible that we reach
2196
2201
// failed state fast enough that we never see pending.
2202
+ sawFailed := false
2197
2203
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
+ }
2202
2213
})
2214
+ if ! sawFailed {
2215
+ wait ("workspace build failed" , func (w codersdk.Workspace ) bool {
2216
+ return w .LatestBuild .Status == codersdk .WorkspaceStatusFailed
2217
+ })
2218
+ }
2203
2219
2204
2220
closeFunc .Close ()
2205
2221
build := coderdtest .CreateWorkspaceBuild (t , client , workspace , database .WorkspaceTransitionStart )
0 commit comments