2
0
Эх сурвалжийг харах

test: harden edit watcher assertions

Kit Langton 1 долоо хоног өмнө
parent
commit
3b5c4e09e5

+ 17 - 2
packages/opencode/test/tool/edit.test.ts

@@ -33,6 +33,21 @@ async function touch(file: string, time: number) {
   await fs.utimes(file, date, date)
   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(
 const runtime = ManagedRuntime.make(
   Layer.mergeAll(LSP.defaultLayer, FileTime.defaultLayer, AppFileSystem.defaultLayer, Format.defaultLayer, Bus.layer),
   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()
           unsubUpdated()
         },
         },
       })
       })
@@ -364,7 +379,7 @@ describe("tool.edit", () => {
             ),
             ),
           )
           )
 
 
-          expect(events).toContain("updated")
+          await wait(() => expect(events).toContain("updated"))
           unsubUpdated()
           unsubUpdated()
         },
         },
       })
       })