refactor
This commit is contained in:
38
core/racing/domain/value-objects/JoinedAt.test.ts
Normal file
38
core/racing/domain/value-objects/JoinedAt.test.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import { JoinedAt } from './JoinedAt';
|
||||
|
||||
describe('JoinedAt', () => {
|
||||
it('should create a joined date', () => {
|
||||
const past = new Date('2020-01-01');
|
||||
const joined = JoinedAt.create(past);
|
||||
expect(joined.toDate()).toEqual(past);
|
||||
});
|
||||
|
||||
it('should throw on future date', () => {
|
||||
const future = new Date();
|
||||
future.setFullYear(future.getFullYear() + 1);
|
||||
expect(() => JoinedAt.create(future)).toThrow('Joined date cannot be in the future');
|
||||
});
|
||||
|
||||
it('should allow current date', () => {
|
||||
const now = new Date();
|
||||
const joined = JoinedAt.create(now);
|
||||
expect(joined.toDate().getTime()).toBeCloseTo(now.getTime(), -3); // close enough
|
||||
});
|
||||
|
||||
it('should equal same date', () => {
|
||||
const d1 = new Date('2020-01-01');
|
||||
const d2 = new Date('2020-01-01');
|
||||
const j1 = JoinedAt.create(d1);
|
||||
const j2 = JoinedAt.create(d2);
|
||||
expect(j1.equals(j2)).toBe(true);
|
||||
});
|
||||
|
||||
it('should not equal different date', () => {
|
||||
const d1 = new Date('2020-01-01');
|
||||
const d2 = new Date('2020-01-02');
|
||||
const j1 = JoinedAt.create(d1);
|
||||
const j2 = JoinedAt.create(d2);
|
||||
expect(j1.equals(j2)).toBe(false);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user