40 lines
1.2 KiB
TypeScript
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);
|
|
});
|