Skip to content

Commit 295dbdd

Browse files
committed
test(coderd): Fix TestWorkspaceAgent_Metadata flake
1 parent aba5cb8 commit 295dbdd

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

coderd/workspaceagents.go

-1
Original file line numberDiff line numberDiff line change
@@ -1461,7 +1461,6 @@ func (api *API) watchWorkspaceAgentMetadata(rw http.ResponseWriter, r *http.Requ
14611461
case <-senderClosed:
14621462
return
14631463
case <-refreshTicker.C:
1464-
break
14651464
}
14661465

14671466
// Avoid spamming the DB with reads we know there are no updates. We want

coderd/workspaceagents_test.go

+16-6
Original file line numberDiff line numberDiff line change
@@ -1268,11 +1268,6 @@ func TestWorkspaceAgent_Metadata(t *testing.T) {
12681268

12691269
var update []codersdk.WorkspaceAgentMetadata
12701270

1271-
check := func(want codersdk.WorkspaceAgentMetadataResult, got codersdk.WorkspaceAgentMetadata) {
1272-
require.Equal(t, want.Value, got.Result.Value)
1273-
require.Equal(t, want.Error, got.Result.Error)
1274-
}
1275-
12761271
wantMetadata1 := codersdk.WorkspaceAgentMetadataResult{
12771272
CollectedAt: time.Now(),
12781273
Value: "bar",
@@ -1285,12 +1280,27 @@ func TestWorkspaceAgent_Metadata(t *testing.T) {
12851280

12861281
recvUpdate := func() []codersdk.WorkspaceAgentMetadata {
12871282
select {
1283+
case <-ctx.Done():
1284+
t.Fatalf("context done: %v", ctx.Err())
12881285
case err := <-errors:
12891286
t.Fatalf("error watching metadata: %v", err)
1290-
return nil
12911287
case update := <-updates:
12921288
return update
12931289
}
1290+
return nil
1291+
}
1292+
1293+
check := func(want codersdk.WorkspaceAgentMetadataResult, got codersdk.WorkspaceAgentMetadata) {
1294+
// We can't trust the order of the updates due to timers and debounces,
1295+
// so let's check a few times once more.
1296+
for i := 0; i < 2 && (want.Value != got.Result.Value || want.Error != got.Result.Error); i++ {
1297+
recvUpdate()
1298+
}
1299+
ok1 := assert.Equal(t, want.Value, got.Result.Value)
1300+
ok2 := assert.Equal(t, want.Error, got.Result.Error)
1301+
if !ok1 || !ok2 {
1302+
require.FailNow(t, "check failed")
1303+
}
12941304
}
12951305

12961306
update = recvUpdate()

0 commit comments

Comments
 (0)