import { describe, expect, it } from "bun:test"; import { helpProperties, helpVehicles, helpWeapons } from "./help-catalog"; describe("help catalog", () => { it("exports the expected item counts", () => { expect(helpProperties).toHaveLength(22); expect(helpVehicles).toHaveLength(7); expect(helpWeapons).toHaveLength(10); }); it("provides both locales for every exported item", () => { helpProperties.forEach((property) => { expect(property.name.en.length).toBeGreaterThan(0); expect(property.name.fr.length).toBeGreaterThan(0); }); helpVehicles.forEach((vehicle) => { expect(vehicle.name.en.length).toBeGreaterThan(0); expect(vehicle.name.fr.length).toBeGreaterThan(0); expect(vehicle.tier.en.length).toBeGreaterThan(0); expect(vehicle.tier.fr.length).toBeGreaterThan(0); expect(vehicle.price.en.length).toBeGreaterThan(0); expect(vehicle.price.fr.length).toBeGreaterThan(0); expect(vehicle.text.en.length).toBeGreaterThan(0); expect(vehicle.text.fr.length).toBeGreaterThan(0); }); helpWeapons.forEach((weapon) => { expect(weapon.name.en.length).toBeGreaterThan(0); expect(weapon.name.fr.length).toBeGreaterThan(0); expect(weapon.tier.en.length).toBeGreaterThan(0); expect(weapon.tier.fr.length).toBeGreaterThan(0); expect(weapon.price.en.length).toBeGreaterThan(0); expect(weapon.price.fr.length).toBeGreaterThan(0); expect(weapon.text.en.length).toBeGreaterThan(0); expect(weapon.text.fr.length).toBeGreaterThan(0); }); }); it("matches key spot values from the rules data", () => { expect(helpProperties[0]).toMatchObject({ id: "negotown", price: 60, houseCost: 50, mortgage: 30, color: "brown", }); expect(helpProperties[21]).toMatchObject({ id: "lbtrd-tower", rent5: 2000, color: "blue", }); expect(helpVehicles[6]).toMatchObject({ id: "teleporteur-de-poche", price: { en: "800₦", fr: "800₦" }, }); expect(helpWeapons[5]).toMatchObject({ id: "emp-bomb", name: { en: "EMP Bomb", fr: "Bombe IEM" }, }); }); });