@@ -1268,11 +1268,6 @@ func TestWorkspaceAgent_Metadata(t *testing.T) {
1268
1268
1269
1269
var update []codersdk.WorkspaceAgentMetadata
1270
1270
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
-
1276
1271
wantMetadata1 := codersdk.WorkspaceAgentMetadataResult {
1277
1272
CollectedAt : time .Now (),
1278
1273
Value : "bar" ,
@@ -1285,12 +1280,27 @@ func TestWorkspaceAgent_Metadata(t *testing.T) {
1285
1280
1286
1281
recvUpdate := func () []codersdk.WorkspaceAgentMetadata {
1287
1282
select {
1283
+ case <- ctx .Done ():
1284
+ t .Fatalf ("context done: %v" , ctx .Err ())
1288
1285
case err := <- errors :
1289
1286
t .Fatalf ("error watching metadata: %v" , err )
1290
- return nil
1291
1287
case update := <- updates :
1292
1288
return update
1293
1289
}
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
+ }
1294
1304
}
1295
1305
1296
1306
update = recvUpdate ()
0 commit comments