Files
AgentCompany/tests/unit/office-sprites.test.ts
T
ZacharyZhang-NY 07d0b4587d Promote AgentCompany-New to the repository root and retire the old app
The legacy application - its src, tests, landing site, promo assets, docs,
release tooling, CI workflows, and root configs - leaves the tree; it stays
reachable in history. Everything under AgentCompany-New moves up unchanged:
same package name, so the production userData/database path is untouched,
and e2e/build scripts already resolved paths relative to the project. The
developer cred.txt stays gitignored at its new location. Full verify:ci
passes from the new root.
2026-07-07 00:04:13 -04:00

31 lines
1.3 KiB
TypeScript

import { describe, expect, test } from "vitest";
import { appearanceFor } from "../../src/renderer/src/pages/office/sprites";
describe("office sprite appearances", () => {
test("identity is deterministic", () => {
const first = appearanceFor("agent-42", false);
const second = appearanceFor("agent-42", false);
expect(second).toEqual(first);
});
test("a team of agents does not look like clones", () => {
const ids = Array.from({ length: 40 }, (_, i) => `agent-${i}-${i * 7919}`);
const looks = ids.map((id) => appearanceFor(id, false));
const skins = new Set(looks.map((look) => look.skin));
const hairStyles = new Set(looks.map((look) => look.hairStyle));
const hairColors = new Set(looks.map((look) => look.hair));
const shirts = new Set(looks.map((look) => look.shirt));
expect(skins.size).toBeGreaterThanOrEqual(4);
expect(hairStyles.size).toBeGreaterThanOrEqual(5);
expect(hairColors.size).toBeGreaterThanOrEqual(5);
expect(shirts.size).toBeGreaterThanOrEqual(6);
expect(looks.some((look) => look.glasses)).toBe(true);
expect(looks.some((look) => !look.glasses)).toBe(true);
});
test("the CEO always dresses the part", () => {
const ceo = appearanceFor("ceo-agent", true);
expect(ceo.outfit).toBe("blazer");
});
});