b207bfa7af
test: 添加单元测试和端到端测试 refactor: 重构登录页面和上传模块 ci: 更新测试覆盖率阈值至42% build: 添加测试相关依赖 docs: 更新测试文档 style: 修复代码格式问题
42 lines
985 B
TypeScript
42 lines
985 B
TypeScript
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,
|
|
};
|
|
}
|