import { describe, it, expect, vi, beforeEach, afterEach } from "vitest"; import { render, cleanup } from "@testing-library/vue"; import { CopilotKitCoreErrorCode } from "@copilotkit/core"; import CopilotKitProvider from "../CopilotKitProvider.vue"; describe("CopilotKitProvider onError", () => { const originalFetch = global.fetch; const originalWindow = (globalThis as { window?: unknown }).window; beforeEach(() => { (globalThis as { window?: unknown }).window = {}; }); afterEach(() => { vi.restoreAllMocks(); cleanup(); global.fetch = originalFetch; if (originalWindow === undefined) { delete (globalThis as { window?: unknown }).window; } else { (globalThis as { window?: unknown }).window = originalWindow; } }); it("onError fires when runtime info fetch fails (no publicApiKey required)", async () => { global.fetch = vi.fn().mockRejectedValue(new Error("network failure")); const onError = vi.fn(); render(CopilotKitProvider, { props: { runtimeUrl: "http://localhost:59999/nonexistent", onError, }, slots: { default: "