chore(repo): initialize planarchy workspace
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
DISPO_INTERNAL_PROJECT_BUCKETS,
|
||||
DISPO_REQUIRED_ROLE_SEEDS,
|
||||
createWeekdayAvailabilityFromFte,
|
||||
normalizeDispoChapterToken,
|
||||
normalizeDispoRoleToken,
|
||||
normalizeDispoUtilizationToken,
|
||||
resolveCanonicalResourceIdentity,
|
||||
} from "../index.js";
|
||||
|
||||
describe("dispo import normalization", () => {
|
||||
it("normalizes canonical identity and detects enterprise/eid conflicts", () => {
|
||||
expect(resolveCanonicalResourceIdentity(" Alice.Example ", "alice.example")).toEqual({
|
||||
canonicalId: "alice.example",
|
||||
normalizedEnterpriseId: "alice.example",
|
||||
normalizedEid: "alice.example",
|
||||
conflict: false,
|
||||
});
|
||||
|
||||
expect(resolveCanonicalResourceIdentity("alice.example", "bob.example")).toEqual({
|
||||
canonicalId: null,
|
||||
normalizedEnterpriseId: "alice.example",
|
||||
normalizedEid: "bob.example",
|
||||
conflict: true,
|
||||
});
|
||||
});
|
||||
|
||||
it("maps chapter, role, and utilization tokens to canonical values", () => {
|
||||
expect(normalizeDispoChapterToken("3d")).toBe("Digital Content Production");
|
||||
expect(normalizeDispoRoleToken(" pm ")).toBe("Project Manager");
|
||||
expect(normalizeDispoUtilizationToken("md")).toBe("MD&I");
|
||||
expect(normalizeDispoUtilizationToken("un")).toBeNull();
|
||||
expect(normalizeDispoRoleToken("unknown")).toBeNull();
|
||||
});
|
||||
|
||||
it("creates the default weekday fallback availability from fte", () => {
|
||||
expect(createWeekdayAvailabilityFromFte(1)).toEqual({
|
||||
monday: 8,
|
||||
tuesday: 8,
|
||||
wednesday: 8,
|
||||
thursday: 8,
|
||||
friday: 8,
|
||||
});
|
||||
|
||||
expect(createWeekdayAvailabilityFromFte(0.5)).toEqual({
|
||||
monday: 4,
|
||||
tuesday: 4,
|
||||
wednesday: 4,
|
||||
thursday: 4,
|
||||
friday: 4,
|
||||
});
|
||||
|
||||
expect(createWeekdayAvailabilityFromFte(0.8)).toEqual({
|
||||
monday: 6.4,
|
||||
tuesday: 6.4,
|
||||
wednesday: 6.4,
|
||||
thursday: 6.4,
|
||||
friday: 6.4,
|
||||
});
|
||||
});
|
||||
|
||||
it("keeps canonical bucket and role seed definitions stable", () => {
|
||||
expect(DISPO_INTERNAL_PROJECT_BUCKETS).toEqual([
|
||||
{
|
||||
sourceToken: "MO",
|
||||
shortCode: "INT-MO",
|
||||
name: "Management & Operations",
|
||||
utilizationCategoryCode: "M&O",
|
||||
},
|
||||
{
|
||||
sourceToken: "MD",
|
||||
shortCode: "INT-MD",
|
||||
name: "Market Development & Initiatives",
|
||||
utilizationCategoryCode: "MD&I",
|
||||
},
|
||||
{
|
||||
sourceToken: "PD",
|
||||
shortCode: "INT-PD",
|
||||
name: "People Development & Recruitment",
|
||||
utilizationCategoryCode: "PD&R",
|
||||
},
|
||||
]);
|
||||
|
||||
expect(DISPO_REQUIRED_ROLE_SEEDS.map((role) => role.name)).toEqual([
|
||||
"2D Artist",
|
||||
"3D Artist",
|
||||
"Project Manager",
|
||||
"Art Director",
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user