Files
pitchfast/tests/route-guards.test.ts

40 lines
1.2 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import {
getDashboardRedirectPath,
shouldRedirectDashboardRequest,
} from "../lib/route-guards";
test("getDashboardRedirectPath keeps authenticated users on dashboard", () => {
assert.equal(getDashboardRedirectPath(true), null);
});
test("getDashboardRedirectPath redirects unauthenticated users to the login page", () => {
assert.equal(getDashboardRedirectPath(false), "/login");
});
test("shouldRedirectDashboardRequest protects dashboard paths without authentication", () => {
assert.equal(
shouldRedirectDashboardRequest("/dashboard", false),
true,
);
assert.equal(
shouldRedirectDashboardRequest("/dashboard/leads", false),
true,
);
});
test("shouldRedirectDashboardRequest allows non-dashboard paths without authentication", () => {
assert.equal(
shouldRedirectDashboardRequest("/audit/example", false),
false,
);
assert.equal(shouldRedirectDashboardRequest("/", false), false);
});
test("shouldRedirectDashboardRequest allows authenticated dashboard sessions", () => {
assert.equal(shouldRedirectDashboardRequest("/dashboard", true), false);
assert.equal(shouldRedirectDashboardRequest("/dashboard/audit", true), false);
});