Skip to content

Commit 6d15d01

Browse files
committed
perf(test): replace relay list polling loop with expect.poll
1 parent 5d81c3e commit 6d15d01

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/browser/extension-relay.test.ts

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -105,17 +105,20 @@ async function waitForListMatch<T>(
105105
timeoutMs = 2000,
106106
intervalMs = 50,
107107
): Promise<T> {
108-
const deadline = Date.now() + timeoutMs;
109-
while (true) {
110-
const value = await fetchList();
111-
if (predicate(value)) {
112-
return value;
113-
}
114-
if (Date.now() >= deadline) {
115-
throw new Error("timeout waiting for list update");
116-
}
117-
await new Promise((resolve) => setTimeout(resolve, intervalMs));
108+
let latest: T | undefined;
109+
await expect
110+
.poll(
111+
async () => {
112+
latest = await fetchList();
113+
return predicate(latest);
114+
},
115+
{ timeout: timeoutMs, interval: intervalMs },
116+
)
117+
.toBe(true);
118+
if (latest === undefined) {
119+
throw new Error("expected list value");
118120
}
121+
return latest;
119122
}
120123

121124
describe("chrome extension relay server", () => {

0 commit comments

Comments
 (0)