Files
HiveGrid-Wireframes/03 Quellen und Referenzen/hivegrid-cloud/apps/web/app/utils/integrations/passwordSafeRoutePaths.test.ts
T

31 lines
1.7 KiB
TypeScript

import { existsSync } from "node:fs";
import { describe, expect, it } from "vitest";
import { resolveRepoPath } from "~/utils/testing/repoPaths";
import { passwordSafeAdminPath, passwordSafeExportPath, passwordSafePath, passwordSafeRevealPath, passwordSafeVaultPath } from "./passwordSafeRoutePaths";
describe("password-safe canonical route paths", () => {
it("keeps every password-safe surface outside the HR route tree", () => {
expect(passwordSafePath("acme")).toBe("/acme/passwords");
expect(passwordSafeVaultPath("acme", "vault-1")).toBe("/acme/passwords/vault-1");
expect(passwordSafeRevealPath("acme", "vault-1")).toBe("/acme/passwords/vault-1/reveal");
expect(passwordSafeExportPath("acme", "vault-1")).toBe("/acme/passwords/vault-1/export");
expect(passwordSafeAdminPath("acme")).toBe("/acme/passwords/admin");
});
it("registers canonical routes and explicit compatibility redirects", () => {
[
"apps/web/app/routes/app.$tenant/passwords._index.tsx",
"apps/web/app/routes/app.$tenant/passwords.$vaultId._index.tsx",
"apps/web/app/routes/app.$tenant/passwords.$vaultId.reveal.tsx",
"apps/web/app/routes/app.$tenant/passwords.$vaultId.export.tsx",
"apps/web/app/routes/app.$tenant/passwords.admin.tsx",
].forEach((routeFile) => expect(existsSync(resolveRepoPath(routeFile)), routeFile).toBe(true));
[
"apps/web/app/routes/app.$tenant/hr/password-safe._index.tsx",
"apps/web/app/routes/app.$tenant/hr/password-safe.$vaultId._index.tsx",
"apps/web/app/routes/app.$tenant/hr/admin.password-safe._index.tsx",
].forEach((legacyRouteFile) => expect(existsSync(resolveRepoPath(legacyRouteFile)), legacyRouteFile).toBe(true));
});
});