IKHSAN
ENID Baca dalam Bahasa Indonesia

homeio

Public

Forked from doctor-io/homeio

Branch
main
Latest commit
958d74616 October 2026

session-token.test.ts

Open raw
import { beforeEach, describe, expect, it, vi } from "vitest";

describe("session token", () => {
  beforeEach(() => {
    vi.resetModules();
  });

  it("creates and verifies a valid token", async () => {
    vi.doMock("@/lib/server/env", () => ({
      serverEnv: {
        AUTH_SESSION_SECRET: "a-very-long-secret-for-tests",
      },
    }));

    const { createSessionToken, verifySessionToken } = await import(
      "@/lib/server/modules/auth/session-token"
    );

    const expiresAt = Math.floor(Date.now() / 1000) + 3600;
    const token = createSessionToken("session-123", expiresAt);

    expect(verifySessionToken(token)).toEqual({
      sessionId: "session-123",
      expiresAtEpochSeconds: expiresAt,
    });
  });

  it("rejects tampered token", async () => {
    vi.doMock("@/lib/server/env", () => ({
      serverEnv: {
        AUTH_SESSION_SECRET: "a-very-long-secret-for-tests",
      },
    }));

    const { createSessionToken, verifySessionToken } = await import(
      "@/lib/server/modules/auth/session-token"
    );

    const expiresAt = Math.floor(Date.now() / 1000) + 3600;
    const token = createSessionToken("session-123", expiresAt);

    expect(verifySessionToken(`${token}tampered`)).toBeNull();
  });
});
bytes
1,243
lines
45
Type
ts
Latest commit
16 October 2026