26 lines
986 B
JavaScript
26 lines
986 B
JavaScript
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);
|
|
});
|