IKHSAN
EN Read in EnglishID

homeio

Publik

Fork dari doctor-io/homeio

Branch
main
Commit terakhir
958d74616 Oktober 2026

session-token.test.ts

Buka 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();
  });
});
byte
1.243
baris
45
Jenis
ts
Commit terakhir
16 Oktober 2026