import { describe, expect, it } from "vitest"; import { content, gameConfig, gameConfigSchema, veteranPilot, veteranPilotSchema, } from "../src/index"; describe("veteran pilot and profit share (CR-010)", () => { it("has a valid profit share between 0 and 1", () => { expect(gameConfigSchema.safeParse(gameConfig).success).toBe(true); expect(gameConfig.pilotProfitShare).toBeGreaterThan(0); expect(gameConfig.pilotProfitShare).toBeLessThan(1); expect(gameConfigSchema.safeParse({ ...gameConfig, pilotProfitShare: 1.2 }).success).toBe( false, ); }); it("gives the veteran a valid level and existing skills within their skill points", () => { expect(veteranPilotSchema.safeParse(veteranPilot).success).toBe(true); expect(veteranPilot.level).toBe(2); expect(veteranPilot.level).toBeLessThanOrEqual(gameConfig.pilotLevelXpThresholds.length); const spent = Object.values(veteranPilot.skills).reduce((a, b) => a + b, 0); expect(spent).toBeLessThanOrEqual(veteranPilot.level * gameConfig.skillPointsPerLevel); for (const [skillId, level] of Object.entries(veteranPilot.skills)) { const skill = content.skill(skillId); expect(skill, skillId).toBeDefined(); expect(level).toBeLessThanOrEqual(skill!.maxLevel); } expect(veteranPilot.skills).toEqual({ "expensive-cargo": 1 }); }); });