import { vi } from "vitest"; import type { ToolcraftModelRenderHost } from "../model-rendering/model-render-binding"; export function createContext(events: string[]) { return { beginPath: vi.fn(), clearRect: vi.fn(), clip: vi.fn(), drawImage: vi.fn((source: { kind?: string }) => { events.push(source.kind ?? "unknown"); }), rect: vi.fn(), restore: vi.fn(), rotate: vi.fn(), save: vi.fn(), scale: vi.fn(), setTransform: vi.fn(), translate: vi.fn(), }; } export function createHost( source: HTMLCanvasElement, ): ToolcraftModelRenderHost { return { acquirePresentation: vi.fn(), dispose: vi.fn(), getPreparationStatus: vi.fn(() => "ready" as const), hitTest: vi.fn(), prepare: vi.fn(async () => undefined), release: vi.fn(), retain: vi.fn(() => () => undefined), renderExport: vi.fn(async (_request, context) => { await context.onRendered?.(source); }), renderPreview: vi.fn(), subscribePreparation: vi.fn(() => () => undefined), }; }