test(unit): add lightweight vitest coverage for auth duration and seq pagination utils

This commit is contained in:
nav
2026-05-12 11:53:46 +00:00
parent ec796ae609
commit 41a4172267
11 changed files with 2430 additions and 37 deletions

View File

@@ -11,22 +11,7 @@ import { User } from '../entities/user.entity';
import { RegisterDto } from './dto.register.dto';
import { LoginDto } from './dto.login.dto';
import { AuditService } from '../audit/audit.service';
function parseDurationToSeconds(input: string, fallbackSeconds: number): number {
const raw = input.trim();
if (/^\d+$/.test(raw)) return Number(raw);
const m = raw.match(/^(\d+)([smhd])$/i);
if (!m) return fallbackSeconds;
const value = Number(m[1]);
const unit = m[2].toLowerCase();
if (unit === 's') return value;
if (unit === 'm') return value * 60;
if (unit === 'h') return value * 3600;
if (unit === 'd') return value * 86400;
return fallbackSeconds;
}
import { parseDurationToSeconds } from './token.util';
function signAccessToken(userId: string, email: string): string {
const secret = process.env.JWT_ACCESS_SECRET as string;

View File

@@ -0,0 +1,14 @@
import { describe, expect, it } from 'vitest';
import { parseDurationToSeconds } from './token.util';
describe('parseDurationToSeconds', () => {
it('parses time units', () => {
expect(parseDurationToSeconds('15m', 1)).toBe(900);
expect(parseDurationToSeconds('2h', 1)).toBe(7200);
expect(parseDurationToSeconds('10', 1)).toBe(10);
});
it('falls back on invalid input', () => {
expect(parseDurationToSeconds('abc', 42)).toBe(42);
});
});

View File

@@ -0,0 +1,15 @@
export function parseDurationToSeconds(input: string, fallbackSeconds: number): number {
const raw = input.trim();
if (/^\d+$/.test(raw)) return Number(raw);
const m = raw.match(/^(\d+)([smhd])$/i);
if (!m) return fallbackSeconds;
const value = Number(m[1]);
const unit = m[2].toLowerCase();
if (unit === 's') return value;
if (unit === 'm') return value * 60;
if (unit === 'h') return value * 3600;
if (unit === 'd') return value * 86400;
return fallbackSeconds;
}