diff --git a/src/browser/extension-relay.test.ts b/src/browser/extension-relay.test.ts index f0d1858b0..021778393 100644 --- a/src/browser/extension-relay.test.ts +++ b/src/browser/extension-relay.test.ts @@ -105,17 +105,20 @@ async function waitForListMatch( timeoutMs = 2000, intervalMs = 50, ): Promise { - const deadline = Date.now() + timeoutMs; - while (true) { - const value = await fetchList(); - if (predicate(value)) { - return value; - } - if (Date.now() >= deadline) { - throw new Error("timeout waiting for list update"); - } - await new Promise((resolve) => setTimeout(resolve, intervalMs)); + let latest: T | undefined; + await expect + .poll( + async () => { + latest = await fetchList(); + return predicate(latest); + }, + { timeout: timeoutMs, interval: intervalMs }, + ) + .toBe(true); + if (latest === undefined) { + throw new Error("expected list value"); } + return latest; } describe("chrome extension relay server", () => {