From bfddb33cbb16a322a8231c91d8dfc6d496a9d66e Mon Sep 17 00:00:00 2001 From: Simon Klee Date: Thu, 30 Jul 2026 19:43:02 +0200 Subject: [PATCH] test(tui): update prompt fixture preload --- packages/tui/test/prompt/clipboard.test.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/tui/test/prompt/clipboard.test.ts b/packages/tui/test/prompt/clipboard.test.ts index 41f315b366..08a7fe97fd 100644 --- a/packages/tui/test/prompt/clipboard.test.ts +++ b/packages/tui/test/prompt/clipboard.test.ts @@ -77,14 +77,16 @@ async function mountPrompt(read: () => Promise, imagePrevie const events = createEventStream() const calls = createFetch(undefined, events) + const requests: string[] = [] let preloaded!: () => void const preload = new Promise((resolve) => (preloaded = resolve)) const server = Bun.serve({ port: 0, fetch: async (request) => { + requests.push(new URL(request.url).pathname) const response = await calls.fetch(request) const url = new URL(request.url) - if (url.pathname === "/api/session" && url.searchParams.has("project")) preloaded() + if (url.pathname === "/api/session/active") preloaded() return response }, }) @@ -103,14 +105,22 @@ async function mountPrompt(read: () => Promise, imagePrevie log: () => {}, }).pipe(Effect.provide(AppNodeBuilder.build(Global.node)), Effect.provide(FileSystem.layerNoop({}))), ) - await mounted + await Promise.race([ + mounted, + task.then(() => { + throw new Error("Prompt application exited before mounting") + }), + Bun.sleep(2_000).then(() => { + throw new Error(`Prompt application did not mount; requests: ${requests.join(", ")}`) + }), + ]) await setup.waitFor(() => activePromptRef?.focused === true) await preload await Bun.sleep(0) } catch (error) { setup.renderer.destroy() - await task?.catch(() => undefined) await server.stop() + await task?.catch(() => undefined) activeSetup = undefined activeHost = undefined activePromptRef = undefined