import { vi } from "vitest"; import type { API, OpenAiGlobals, UnknownObject, } from "../../../openai/types.js"; import "../../../openai/globals.js"; import { dispatchStateChange } from "./dispatchStateChange.js"; type Globals = API & OpenAiGlobals; const DEFAULTS = Object.freeze({ setWidgetState: async (state: UnknownObject) => { window.openai.widgetState = state; dispatchStateChange(); }, toolOutput: null, toolResponseMetadata: null, }) satisfies Partial; export function stubOpenAiGlobals( globals?: Partial | ((defaults: typeof DEFAULTS) => Partial) ) { vi.stubGlobal( "openai", typeof globals === "function" ? globals(DEFAULTS) : { ...DEFAULTS, ...globals } ); }