Simon Klee 3 месяцев назад
Родитель
Сommit
7141d76e1c
1 измененных файлов с 29 добавлено и 0 удалено
  1. 29 0
      packages/opencode/test/cli/tui/app.test.ts

+ 29 - 0
packages/opencode/test/cli/tui/app.test.ts

@@ -0,0 +1,29 @@
+import { afterEach, expect, mock, spyOn, test } from "bun:test"
+import * as Core from "@opentui/core"
+
+afterEach(() => {
+  mock.restore()
+})
+
+test("tui rejects when renderer startup fails", async () => {
+  const err = new Error("setRawMode failed with errno: 9")
+  spyOn(Core, "createCliRenderer").mockRejectedValue(err)
+
+  const { tui } = await import("../../../src/cli/cmd/tui/app")
+  const result = await Promise.race([
+    tui({
+      url: "http://opencode.internal",
+      config: {},
+      args: {
+        continue: false,
+        fork: false,
+      },
+    }).then(
+      () => "resolved",
+      (error) => error,
+    ),
+    Bun.sleep(100).then(() => "timeout"),
+  ])
+
+  expect(result).toBe(err)
+})