import { describe, expect, it } from "vitest"; import { TOOLCRAFT_GLTF_ADAPTER_VERSION } from "../formats/gltf-model-format-adapter"; import type { ToolcraftModelWorkerResponse } from "./model-import-worker-protocol"; import { createDefaultToolcraftModelWorkerRuntime } from "./model-import-worker-runtime"; import { decodeRequest } from "./model-import-worker-runtime-test-support"; describe("default model import worker production formats", () => { it("uses the production adapter registry and geometry decoder versions", async () => { const responses: ToolcraftModelWorkerResponse[] = []; const runtime = createDefaultToolcraftModelWorkerRuntime((response) => { responses.push(response); }); const glbRequest = decodeRequest(1); if (glbRequest.kind !== "decode-and-analyze") { throw new Error("Expected decode request."); } await runtime.handleMessage({ ...glbRequest, payload: { ...glbRequest.payload, adapterVersion: TOOLCRAFT_GLTF_ADAPTER_VERSION, geometryDecoderVersion: "stale-decoder@1", }, }); expect(responses.at(-1)).toMatchObject({ feedback: { code: "geometry-decoder-version-unavailable" }, kind: "error", }); responses.length = 0; await runtime.handleMessage({ ...glbRequest, generation: 2, jobId: "decode-2", payload: { ...glbRequest.payload, adapterVersion: "obj-test@1", format: "obj", geometryDecoderVersion: "obj-decoder@1", }, }); expect(responses.at(-1)).toMatchObject({ feedback: { code: "model-adapter-version-unavailable" }, kind: "error", }); runtime.dispose(); }); });