Spaces:
Paused
Paused
| import { describe, expect, it } from "vitest"; | |
| import { | |
| getRememberedPathOwnerCompanyId, | |
| sanitizeRememberedPathForCompany, | |
| } from "../lib/company-page-memory"; | |
| const companies = [ | |
| { id: "for", issuePrefix: "FOR" }, | |
| { id: "pap", issuePrefix: "PAP" }, | |
| ]; | |
| describe("getRememberedPathOwnerCompanyId", () => { | |
| it("uses the route company instead of stale selected-company state for prefixed routes", () => { | |
| expect( | |
| getRememberedPathOwnerCompanyId({ | |
| companies, | |
| pathname: "/FOR/issues/FOR-1", | |
| fallbackCompanyId: "pap", | |
| }), | |
| ).toBe("for"); | |
| }); | |
| it("skips saving when a prefixed route cannot yet be resolved to a known company", () => { | |
| expect( | |
| getRememberedPathOwnerCompanyId({ | |
| companies: [], | |
| pathname: "/FOR/issues/FOR-1", | |
| fallbackCompanyId: "pap", | |
| }), | |
| ).toBeNull(); | |
| }); | |
| it("falls back to the previous company for unprefixed board routes", () => { | |
| expect( | |
| getRememberedPathOwnerCompanyId({ | |
| companies, | |
| pathname: "/dashboard", | |
| fallbackCompanyId: "pap", | |
| }), | |
| ).toBe("pap"); | |
| }); | |
| it("treats unprefixed skills routes as board routes instead of company prefixes", () => { | |
| expect( | |
| getRememberedPathOwnerCompanyId({ | |
| companies, | |
| pathname: "/skills/skill-123/files/SKILL.md", | |
| fallbackCompanyId: "pap", | |
| }), | |
| ).toBe("pap"); | |
| }); | |
| }); | |
| describe("sanitizeRememberedPathForCompany", () => { | |
| it("keeps remembered issue paths that belong to the target company", () => { | |
| expect( | |
| sanitizeRememberedPathForCompany({ | |
| path: "/issues/PAP-12", | |
| companyPrefix: "PAP", | |
| }), | |
| ).toBe("/issues/PAP-12"); | |
| }); | |
| it("falls back to dashboard for remembered issue identifiers from another company", () => { | |
| expect( | |
| sanitizeRememberedPathForCompany({ | |
| path: "/issues/FOR-1", | |
| companyPrefix: "PAP", | |
| }), | |
| ).toBe("/dashboard"); | |
| }); | |
| it("falls back to dashboard when no remembered path exists", () => { | |
| expect( | |
| sanitizeRememberedPathForCompany({ | |
| path: null, | |
| companyPrefix: "PAP", | |
| }), | |
| ).toBe("/dashboard"); | |
| }); | |
| it("keeps remembered skills paths intact for the target company", () => { | |
| expect( | |
| sanitizeRememberedPathForCompany({ | |
| path: "/skills/skill-123/files/SKILL.md", | |
| companyPrefix: "PAP", | |
| }), | |
| ).toBe("/skills/skill-123/files/SKILL.md"); | |
| }); | |
| }); | |