test: add session management tests

This commit is contained in:
张翔
2026-03-10 11:43:58 +08:00
parent 4ece85a9c3
commit 24cec5f572
2 changed files with 241 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
import { describe, it, expect } from '@jest/globals';
export interface SessionData {
userId: string;
role?: string;
}
export interface Session extends SessionData {
createdAt: number;
expiresAt: number;
}
export function createSession(userData: SessionData): Session {
return {
...userData,
createdAt: Date.now(),
expiresAt: Date.now() + (24 * 60 * 60 * 1000),
};
}
export function isSessionValid(session: Session): boolean {
return Date.now() < session.expiresAt;
}
export function getSessionAge(session: Session): number {
return Date.now() - session.createdAt;
}
export function getSessionTimeRemaining(session: Session): number {
return Math.max(0, session.expiresAt - Date.now());
}
export function isSessionExpired(session: Session): boolean {
return Date.now() >= session.expiresAt;
}
export function createSessionWithCustomExpiration(userData: SessionData, expiresInMs: number): Session {
return {
...userData,
createdAt: Date.now(),
expiresAt: Date.now() + expiresInMs,
};
}