CoompanionApp/shared/help-catalog.test.ts

62 lines
2.1 KiB
TypeScript

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" },
});
});
});