import { expect, test } from "bun:test"; import { parseGame8Codes } from "../../src/ingest/codes/game8.ts"; test("code attributes are order/quote insensitive and duplicate code rows merge", () => { const row = "Reward & more"; const html = "

Latest Redeem Codes

" + row + row + "
Redeem CodesRewards

Expired codes

" + row; const codes = parseGame8Codes(html, { game: "genshin", sourceId: "test", sourceUrl: "https://example.com", now: "2026-10-16T12:00:00.000Z", }); expect(codes).toHaveLength(1); expect(codes[0]?.code).toBe("AbC&X"); expect(codes[0]?.reward).toBe("Reward & more"); });