Improve L2 market parsing and data handling
This commit is contained in:
@@ -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);
|
||||
});
|
||||
Reference in New Issue
Block a user