- Create packages/branding/ workspace package (@paperclipai/branding) - Add VOCAB constant with 8 Nexus display strings (company, companies, ceo, board, hire, fire, appName, tagline) - Export VocabKey type for type-safe string lookups - Add vitest config and 9 passing unit tests covering all VOCAB values - Update pnpm-lock.yaml to link new workspace package
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { VOCAB } from "./vocab.js";
|
|
|
|
describe("VOCAB", () => {
|
|
it("maps company to Workspace", () => {
|
|
expect(VOCAB.company).toBe("Workspace");
|
|
});
|
|
it("maps companies to Workspaces", () => {
|
|
expect(VOCAB.companies).toBe("Workspaces");
|
|
});
|
|
it("maps ceo to Project Manager", () => {
|
|
expect(VOCAB.ceo).toBe("Project Manager");
|
|
});
|
|
it("maps board to Owner", () => {
|
|
expect(VOCAB.board).toBe("Owner");
|
|
});
|
|
it("maps hire to Add", () => {
|
|
expect(VOCAB.hire).toBe("Add");
|
|
});
|
|
it("maps fire to Remove", () => {
|
|
expect(VOCAB.fire).toBe("Remove");
|
|
});
|
|
it("has appName as Nexus", () => {
|
|
expect(VOCAB.appName).toBe("Nexus");
|
|
});
|
|
it("has a non-empty tagline", () => {
|
|
expect(VOCAB.tagline).toBe("Open-source orchestration for your agents");
|
|
});
|
|
it("all values are non-empty strings", () => {
|
|
for (const [key, value] of Object.entries(VOCAB)) {
|
|
expect(typeof value, `key "${key}" should be a string`).toBe("string");
|
|
expect(value.length, `key "${key}" should be non-empty`).toBeGreaterThan(0);
|
|
}
|
|
});
|
|
});
|