core tests
Some checks failed
CI / lint-typecheck (push) Failing after 4m52s
CI / tests (push) Has been skipped
CI / contract-tests (push) Has been skipped
CI / e2e-tests (push) Has been skipped
CI / comment-pr (push) Has been skipped
CI / commit-types (push) Has been skipped

This commit is contained in:
2026-01-25 11:38:16 +01:00
parent 3db2209d2a
commit 9f219c0181
6 changed files with 34 additions and 7 deletions

View File

@@ -4,8 +4,8 @@ export class Position {
private constructor(private readonly value: number) {}
static create(value: number): Position {
if (!Number.isInteger(value) || value < 0) {
throw new RacingDomainValidationError('Position must be a non-negative integer');
if (!Number.isInteger(value) || value <= 0) {
throw new RacingDomainValidationError('Position must be a positive integer');
}
return new Position(value);
}

View File

@@ -26,6 +26,7 @@ describe('Result', () => {
fastestLap: validFastestLap,
incidents: validIncidents,
startPosition: validStartPosition,
points: 10,
};
const result = Result.create(props);
@@ -37,6 +38,7 @@ describe('Result', () => {
expect(result.fastestLap.toNumber()).toBe(validFastestLap);
expect(result.incidents.toNumber()).toBe(validIncidents);
expect(result.startPosition.toNumber()).toBe(validStartPosition);
expect(result.points).toBe(10);
});
it('should throw error for empty id', () => {
@@ -48,6 +50,7 @@ describe('Result', () => {
fastestLap: validFastestLap,
incidents: validIncidents,
startPosition: validStartPosition,
points: 10,
};
expect(() => Result.create(props)).toThrow(RacingDomainValidationError);
@@ -62,6 +65,7 @@ describe('Result', () => {
fastestLap: validFastestLap,
incidents: validIncidents,
startPosition: validStartPosition,
points: 10,
};
expect(() => Result.create(props)).toThrow(RacingDomainValidationError);