import { QuickJSWorker } from "../dist"; describe("Eval compatibility coverage", () => { let worker: QuickJSWorker; beforeEach(() => { worker = new QuickJSWorker(); }); afterEach(async () => { if (worker && !worker.isClosed()) await worker.close(); }); it("ignores args when eval result is not callable", async () => { await expect(worker.eval("123", { args: [1, 2, 3] })).resolves.toBe(123); }); it("returns undefined when eval produces a function value", async () => { await expect(worker.eval("(() => function foo() {})()")).resolves.toBeUndefined(); }); it("keeps working after a per-call timeout failure", async () => { await worker.close(); worker = new QuickJSWorker({ maxEvalMs: 5_000 }); await expect(worker.eval("while (true) {}", { maxEvalMs: 25 })).rejects.toBeDefined(); await expect(worker.eval("40 + 2")).resolves.toBe(42); }, 20_000); });