init
This commit is contained in:
54
server/tests/utils.test.js
Normal file
54
server/tests/utils.test.js
Normal file
@@ -0,0 +1,54 @@
|
||||
import { describe, it, expect, vi, beforeAll, afterAll } from 'vitest';
|
||||
import { getDaysDiff, getSRSDate } from '../src/utils/dateUtils.js';
|
||||
|
||||
describe('Date Utils', () => {
|
||||
describe('getDaysDiff', () => {
|
||||
it('should calculate difference between two dates correctly', () => {
|
||||
const d1 = '2023-01-01';
|
||||
const d2 = '2023-01-03';
|
||||
expect(getDaysDiff(d1, d2)).toBe(2);
|
||||
});
|
||||
|
||||
it('should return 0 for same day', () => {
|
||||
expect(getDaysDiff('2023-01-01', '2023-01-01')).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
describe('getSRSDate', () => {
|
||||
beforeAll(() => {
|
||||
vi.useFakeTimers();
|
||||
vi.setSystemTime(new Date('2023-01-01T12:00:00Z'));
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
vi.useRealTimers();
|
||||
});
|
||||
|
||||
it('should add correct hours for levels 1-6', () => {
|
||||
const base = new Date('2023-01-01T12:00:00Z');
|
||||
|
||||
expect(getSRSDate(1).toISOString()).toBe(new Date(base.getTime() + 4 * 3600000).toISOString());
|
||||
expect(getSRSDate(2).toISOString()).toBe(new Date(base.getTime() + 8 * 3600000).toISOString());
|
||||
expect(getSRSDate(3).toISOString()).toBe(new Date(base.getTime() + 24 * 3600000).toISOString());
|
||||
expect(getSRSDate(4).toISOString()).toBe(new Date(base.getTime() + 48 * 3600000).toISOString());
|
||||
expect(getSRSDate(5).toISOString()).toBe(new Date(base.getTime() + 7 * 24 * 3600000).toISOString());
|
||||
expect(getSRSDate(6).toISOString()).toBe(new Date(base.getTime() + 14 * 24 * 3600000).toISOString());
|
||||
});
|
||||
|
||||
it('should add correct hours for levels 7-9', () => {
|
||||
const base = new Date('2023-01-01T12:00:00Z');
|
||||
expect(getSRSDate(7).toISOString()).toBe(new Date(base.getTime() + 7 * 24 * 3600000).toISOString());
|
||||
expect(getSRSDate(8).toISOString()).toBe(new Date(base.getTime() + 30 * 24 * 3600000).toISOString());
|
||||
expect(getSRSDate(9).toISOString()).toBe(new Date(base.getTime() + 90 * 24 * 3600000).toISOString());
|
||||
});
|
||||
|
||||
it('should return null for level 10 (burned)', () => {
|
||||
expect(getSRSDate(10)).toBeNull();
|
||||
});
|
||||
|
||||
it('should default to 4 hours for unknown levels', () => {
|
||||
const base = new Date('2023-01-01T12:00:00Z');
|
||||
expect(getSRSDate(99).toISOString()).toBe(new Date(base.getTime() + 4 * 3600000).toISOString());
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user