From 6d15d01446c1c59e71ddc44cb6b1340e4bca129a Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 18 Feb 2026 17:44:44 +0000 Subject: [PATCH] perf(test): replace relay list polling loop with expect.poll --- src/browser/extension-relay.test.ts | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) 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", () => {