This commit is contained in:
Stefan Lazic committed 2026-08-04 09:57:58 +01:00
1 parent 546613e677
commit 4785510144
82 files changed
+4903 -287

No files matched your search

@@ -0,0 +1,37 @@
import { beforeEach, describe, expect, it, vi } from "vitest";
import { createOAuthState, verifyOAuthState } from "../oauth-state";
describe("oauth-state", () => {
beforeEach(() => {
process.env.AUTH_SECRET = "test-auth-secret-not-for-production";
});
it("verifies a state token for the staff member it was issued to", () => {
const state = createOAuthState("staff-123");
expect(verifyOAuthState(state, "staff-123")).toBe(true);
});
it("rejects a state token issued to a different staff member", () => {
const state = createOAuthState("staff-123");
expect(verifyOAuthState(state, "staff-999")).toBe(false);
});
it("rejects a tampered token", () => {
const state = createOAuthState("staff-123");
const tampered = `${state.slice(0, -2)}xx`;
expect(verifyOAuthState(tampered, "staff-123")).toBe(false);
});
it("rejects a malformed token", () => {
expect(verifyOAuthState("not-a-real-token", "staff-123")).toBe(false);
expect(verifyOAuthState("", "staff-123")).toBe(false);
});
it("rejects an expired token", () => {
vi.useFakeTimers();
const state = createOAuthState("staff-123");
vi.advanceTimersByTime(11 * 60 * 1000); // past the 10-minute max age
expect(verifyOAuthState(state, "staff-123")).toBe(false);
vi.useRealTimers();
});
});