35 lines
996 B
TypeScript
35 lines
996 B
TypeScript
import { expect, mock, test } from "bun:test"
|
|
import { Effect } from "effect"
|
|
import { Global } from "@opencode-ai/core/global"
|
|
import { createTuiResolvedConfig } from "./fixture/tui-runtime"
|
|
|
|
test("run preserves the original renderer initialization error message", async () => {
|
|
const message = 'Failed to open library "opentui.dll": error code 126'
|
|
const core = await import("@opentui/core")
|
|
mock.module("@opentui/core", () => ({
|
|
...core,
|
|
createCliRenderer: async () => {
|
|
throw new Error(message)
|
|
},
|
|
}))
|
|
|
|
try {
|
|
const { run } = await import("../src/app")
|
|
|
|
await expect(
|
|
Effect.runPromise(
|
|
run({
|
|
url: "http://test",
|
|
config: createTuiResolvedConfig({ plugin_enabled: {} }),
|
|
args: {},
|
|
pluginHost: {
|
|
async start() {},
|
|
async dispose() {},
|
|
},
|
|
}).pipe(Effect.provide(Global.defaultLayer)),
|
|
),
|
|
).rejects.toThrow(message)
|
|
} finally {
|
|
mock.restore()
|
|
}
|
|
})
|