import test from "node:test"; import assert from "node:assert/strict"; import { createCatalogResolver } from "../src/catalog-resolver.js"; test("chooses the strongest catalog response across OCR alternatives", async () => { const resolver = createCatalogResolver(async (name) => ({ id: name, name: name === "garbled" ? "Wrong" : "Ancient Adena", iconUrl: `/${name}.png`, matchScore: name === "garbled" ? 0.4 : 0.92, })); const result = await resolver( { name: "garbled", quantity: 1 }, [{ name: "garbled", quantity: 1 }, { name: "Ancient Adena", quantity: 7 }], ); assert.equal(result.name, "Ancient Adena"); assert.equal(result.quantity, 7); assert.equal(result.matchScore, 0.92); }); test("keeps OCR data when every catalog response is below threshold", async () => { const resolver = createCatalogResolver(async () => ({ matchScore: 0.2 })); const item = { name: "Unknown", priceAdena: 3 }; assert.equal(await resolver(item), item); });