From 3b5c4e09e535a0bca199fdb7c468d3ddfefa55b7 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Sat, 11 Apr 2026 20:13:44 -0400 Subject: [PATCH] test: harden edit watcher assertions --- packages/opencode/test/tool/edit.test.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index 0695b54bac..586a971ca0 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -33,6 +33,21 @@ async function touch(file: string, time: number) { await fs.utimes(file, date, date) } +async function wait(check: () => void, timeout = 1_000) { + const end = Date.now() + timeout + let err: unknown + while (Date.now() < end) { + try { + check() + return + } catch (cause) { + err = cause + await Bun.sleep(10) + } + } + throw err +} + const runtime = ManagedRuntime.make( Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer), ) @@ -133,7 +148,7 @@ describe("tool.edit", () => { ), ) - expect(events).toContain("updated") + await wait(() => expect(events).toContain("updated")) unsubUpdated() }, }) @@ -364,7 +379,7 @@ describe("tool.edit", () => { ), ) - expect(events).toContain("updated") + await wait(() => expect(events).toContain("updated")) unsubUpdated() }, })