Improve L2 market parsing and data handling

This commit is contained in:
2026-08-11 22:24:36 +03:00
parent de41230b9b
commit af9cd1e92d
58 changed files with 2474 additions and 444 deletions
+25
View File
@@ -0,0 +1,25 @@
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);
});