| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import { describe, expect, it } from "vitest";
- import { inventorySummary, playerStatsFromSnapshot } from "../src/renderer/playtest-hud.js";
- describe("playerStatsFromSnapshot", () => {
- it("reads gold, stamina, seed and inventory from the player entity", () => {
- const stats = playerStatsFromSnapshot([
- { id: "plot:0:0", type: "plot" },
- { id: "player", type: "player", gold: 42, stamina: 30, selectedSeed: "carrot-seed", inventory: { carrot: 3, "carrot-seed": 1 } },
- ]);
- expect(stats.gold).toBe(42);
- expect(stats.stamina).toBe(30);
- expect(stats.selectedSeed).toBe("carrot-seed");
- expect(stats.inventory).toEqual({ carrot: 3, "carrot-seed": 1 });
- });
- it("defaults when the player or fields are missing", () => {
- const stats = playerStatsFromSnapshot([]);
- expect(stats.gold).toBe(0);
- expect(stats.stamina).toBe(0);
- expect(stats.selectedSeed).toBeNull();
- expect(stats.inventory).toEqual({});
- });
- it("drops zero/negative inventory quantities", () => {
- const stats = playerStatsFromSnapshot([
- { id: "player", type: "player", inventory: { carrot: 2, hoe: 0, weed: -1 } },
- ]);
- expect(stats.inventory).toEqual({ carrot: 2 });
- });
- });
- describe("inventorySummary", () => {
- it("joins inventory items", () => {
- expect(inventorySummary({ inventory: { carrot: 3, hoe: 1 }, gold: 0, stamina: 0, selectedSeed: null })).toBe(
- "carrot ×3 · hoe ×1",
- );
- });
- it("shows a placeholder for an empty inventory", () => {
- expect(inventorySummary({ inventory: {}, gold: 0, stamina: 0, selectedSeed: null })).toBe("items: —");
- });
- });
|