website refactor
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
|
||||
import { Driver } from '@core/racing/domain/entities/Driver';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
import { MediaReference } from '@core/domain/media/MediaReference';
|
||||
import { Driver } from '@core/racing/domain/entities/Driver';
|
||||
import { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemoryDriverRepository implements DriverRepository {
|
||||
private drivers: Map<string, Driver> = new Map();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { GameRepository } from '@core/racing/domain/repositories/GameRepository';
|
||||
import { Game } from '@core/racing/domain/entities/Game';
|
||||
import { GameRepository } from '@core/racing/domain/repositories/GameRepository';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemoryGameRepository implements GameRepository {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
|
||||
import { LeagueMembership } from '@core/racing/domain/entities/LeagueMembership';
|
||||
import { JoinRequest } from '@core/racing/domain/entities/JoinRequest';
|
||||
import { LeagueMembership } from '@core/racing/domain/entities/LeagueMembership';
|
||||
import { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemoryLeagueMembershipRepository implements LeagueMembershipRepository {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
|
||||
import { League } from '@core/racing/domain/entities/League';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
import { MediaReference } from '@core/domain/media/MediaReference';
|
||||
import { League } from '@core/racing/domain/entities/League';
|
||||
import { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemoryLeagueRepository implements LeagueRepository {
|
||||
private leagues: Map<string, League> = new Map();
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository';
|
||||
import { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig';
|
||||
import { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemoryLeagueScoringConfigRepository implements LeagueScoringConfigRepository {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { InMemoryLeagueScoringPresetProvider } from './InMemoryLeagueScoringPresetProvider';
|
||||
|
||||
describe('InMemoryLeagueScoringPresetProvider', () => {
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import {
|
||||
getLeagueScoringPresetById,
|
||||
listLeagueScoringPresets,
|
||||
} from '../../../bootstrap/LeagueScoringPresets';
|
||||
import type {
|
||||
LeagueScoringPresetDTO,
|
||||
LeagueScoringPresetProvider,
|
||||
LeagueScoringPresetDTO,
|
||||
LeagueScoringPresetProvider,
|
||||
} from '@core/racing/application/ports/LeagueScoringPresetProvider';
|
||||
import {
|
||||
getLeagueScoringPresetById,
|
||||
listLeagueScoringPresets,
|
||||
} from '../../../bootstrap/LeagueScoringPresets';
|
||||
|
||||
/**
|
||||
* Infrastructure adapter exposing the in-memory scoring preset registry
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
|
||||
import { Protest } from '@core/racing/domain/entities/Protest';
|
||||
import { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemoryProtestRepository implements ProtestRepository {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
|
||||
import { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration';
|
||||
import { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemoryRaceRegistrationRepository implements RaceRegistrationRepository {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
||||
import { Race, type RaceStatusValue } from '@core/racing/domain/entities/Race';
|
||||
import { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemoryRaceRepository implements RaceRepository {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
|
||||
import { Season } from '@core/racing/domain/entities/season/Season';
|
||||
import { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemorySeasonRepository implements SeasonRepository {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
|
||||
import { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';
|
||||
import { SponsorRepository } from '@core/racing/domain/repositories/SponsorRepository';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemorySponsorRepository implements SponsorRepository {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { SponsorableEntityType, SponsorshipRequest, SponsorshipRequestStatus } from '@core/racing/domain/entities/SponsorshipRequest';
|
||||
import { SponsorshipRequestRepository } from '@core/racing/domain/repositories/SponsorshipRequestRepository';
|
||||
import { SponsorshipRequest, SponsorableEntityType, SponsorshipRequestStatus } from '@core/racing/domain/entities/SponsorshipRequest';
|
||||
import { Logger } from '@core/shared/domain';
|
||||
|
||||
export class InMemorySponsorshipRequestRepository implements SponsorshipRequestRepository {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { TeamStats, TeamStatsRepository } from '@core/racing/domain/repositories/TeamStatsRepository';
|
||||
import type { Logger } from '@core/shared/domain/Logger';
|
||||
import type { TeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/TeamStatsRepository';
|
||||
|
||||
export class InMemoryTeamStatsRepository implements TeamStatsRepository {
|
||||
private readonly stats = new Map<string, TeamStats>();
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { Column, Entity, PrimaryColumn } from 'typeorm';
|
||||
|
||||
import type {
|
||||
SerializedSeasonDropPolicy,
|
||||
SerializedSeasonSchedule,
|
||||
SerializedSeasonScoringConfig,
|
||||
SerializedSeasonStewardingConfig,
|
||||
SerializedSeasonDropPolicy,
|
||||
SerializedSeasonSchedule,
|
||||
SerializedSeasonScoringConfig,
|
||||
SerializedSeasonStewardingConfig,
|
||||
} from '../serialized/RacingTypeOrmSerialized';
|
||||
|
||||
@Entity({ name: 'racing_seasons' })
|
||||
|
||||
@@ -10,25 +10,25 @@ import { Money } from '@core/racing/domain/value-objects/Money';
|
||||
import { SponsorshipPricing } from '@core/racing/domain/value-objects/SponsorshipPricing';
|
||||
|
||||
import {
|
||||
GameOrmEntity,
|
||||
LeagueWalletOrmEntity,
|
||||
SeasonSponsorshipOrmEntity,
|
||||
SponsorOrmEntity,
|
||||
SponsorshipPricingOrmEntity,
|
||||
SponsorshipRequestOrmEntity,
|
||||
TransactionOrmEntity,
|
||||
GameOrmEntity,
|
||||
LeagueWalletOrmEntity,
|
||||
SeasonSponsorshipOrmEntity,
|
||||
SponsorOrmEntity,
|
||||
SponsorshipPricingOrmEntity,
|
||||
SponsorshipRequestOrmEntity,
|
||||
TransactionOrmEntity,
|
||||
} from '../entities/MissingRacingOrmEntities';
|
||||
import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError';
|
||||
import { MoneyOrmMapper } from './MoneyOrmMapper';
|
||||
import {
|
||||
GameOrmMapper,
|
||||
LeagueWalletOrmMapper,
|
||||
SeasonSponsorshipOrmMapper,
|
||||
SponsorOrmMapper,
|
||||
SponsorshipPricingOrmMapper,
|
||||
SponsorshipRequestOrmMapper,
|
||||
TransactionOrmMapper,
|
||||
GameOrmMapper,
|
||||
LeagueWalletOrmMapper,
|
||||
SeasonSponsorshipOrmMapper,
|
||||
SponsorOrmMapper,
|
||||
SponsorshipPricingOrmMapper,
|
||||
SponsorshipRequestOrmMapper,
|
||||
TransactionOrmMapper,
|
||||
} from './CommerceOrmMappers';
|
||||
import { MoneyOrmMapper } from './MoneyOrmMapper';
|
||||
|
||||
describe('GameOrmMapper', () => {
|
||||
it('toDomain uses rehydrate semantics (does not call create)', () => {
|
||||
|
||||
@@ -7,24 +7,24 @@ import { SponsorshipRequest, type SponsorableEntityType, type SponsorshipRequest
|
||||
import { SponsorshipPricing } from '@core/racing/domain/value-objects/SponsorshipPricing';
|
||||
|
||||
import {
|
||||
GameOrmEntity,
|
||||
LeagueWalletOrmEntity,
|
||||
SeasonSponsorshipOrmEntity,
|
||||
SponsorOrmEntity,
|
||||
SponsorshipPricingOrmEntity,
|
||||
SponsorshipRequestOrmEntity,
|
||||
TransactionOrmEntity,
|
||||
GameOrmEntity,
|
||||
LeagueWalletOrmEntity,
|
||||
SeasonSponsorshipOrmEntity,
|
||||
SponsorOrmEntity,
|
||||
SponsorshipPricingOrmEntity,
|
||||
SponsorshipRequestOrmEntity,
|
||||
TransactionOrmEntity,
|
||||
} from '../entities/MissingRacingOrmEntities';
|
||||
import {
|
||||
assertArray,
|
||||
assertBoolean,
|
||||
assertDate,
|
||||
assertEnumValue,
|
||||
assertNonEmptyString,
|
||||
assertOptionalStringOrNull,
|
||||
assertRecord,
|
||||
} from '../schema/TypeOrmSchemaGuards';
|
||||
import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError';
|
||||
import {
|
||||
assertArray,
|
||||
assertBoolean,
|
||||
assertDate,
|
||||
assertEnumValue,
|
||||
assertNonEmptyString,
|
||||
assertOptionalStringOrNull,
|
||||
assertRecord,
|
||||
} from '../schema/TypeOrmSchemaGuards';
|
||||
import { MoneyOrmMapper } from './MoneyOrmMapper';
|
||||
|
||||
const VALID_CURRENCIES = ['USD', 'EUR', 'GBP'] as const;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Driver } from '@core/racing/domain/entities/Driver';
|
||||
import { MediaReference } from '@core/domain/media/MediaReference';
|
||||
import { Driver } from '@core/racing/domain/entities/Driver';
|
||||
|
||||
import { DriverOrmEntity } from '../entities/DriverOrmEntity';
|
||||
import { assertDate, assertNonEmptyString, assertOptionalStringOrNull } from '../schema/TypeOrmSchemaGuards';
|
||||
|
||||
@@ -2,9 +2,9 @@ import type { DriverStats } from '@core/racing/application/use-cases/DriverStats
|
||||
|
||||
import { DriverStatsOrmEntity } from '../entities/DriverStatsOrmEntity';
|
||||
import {
|
||||
assertNonEmptyString,
|
||||
assertInteger,
|
||||
assertNumber
|
||||
assertInteger,
|
||||
assertNonEmptyString,
|
||||
assertNumber
|
||||
} from '../schema/TypeOrmSchemaGuards';
|
||||
|
||||
export class DriverStatsOrmMapper {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { League, type LeagueSettings } from '@core/racing/domain/entities/League';
|
||||
import { MediaReference } from '@core/domain/media/MediaReference';
|
||||
import { League, type LeagueSettings } from '@core/racing/domain/entities/League';
|
||||
|
||||
import { LeagueOrmEntity } from '../entities/LeagueOrmEntity';
|
||||
import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError';
|
||||
import type { SerializedLeagueSettings } from '../serialized/RacingTypeOrmSerialized';
|
||||
import { assertEnumValue, assertNumber, assertRecord } from '../schema/TypeOrmSchemaGuards';
|
||||
import type { SerializedLeagueSettings } from '../serialized/RacingTypeOrmSerialized';
|
||||
|
||||
const VALID_POINTS_SYSTEMS = ['f1-2024', 'indycar', 'custom'] as const;
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ import { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringC
|
||||
|
||||
import { LeagueScoringConfigOrmEntity } from '../entities/LeagueScoringConfigOrmEntity';
|
||||
import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError';
|
||||
import { LeagueScoringConfigOrmMapper } from './LeagueScoringConfigOrmMapper';
|
||||
import { ChampionshipConfigJsonMapper, type SerializedChampionshipConfig } from './ChampionshipConfigJsonMapper';
|
||||
import { LeagueScoringConfigOrmMapper } from './LeagueScoringConfigOrmMapper';
|
||||
import { PointsTableJsonMapper } from './PointsTableJsonMapper';
|
||||
|
||||
describe('LeagueScoringConfigOrmMapper', () => {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig';
|
||||
|
||||
import { ChampionshipConfigJsonMapper, type SerializedChampionshipConfig } from './ChampionshipConfigJsonMapper';
|
||||
import { LeagueScoringConfigOrmEntity } from '../entities/LeagueScoringConfigOrmEntity';
|
||||
import { assertArray, assertNonEmptyString, assertRecord } from '../schema/TypeOrmSchemaGuards';
|
||||
import { ChampionshipConfigJsonMapper, type SerializedChampionshipConfig } from './ChampionshipConfigJsonMapper';
|
||||
|
||||
function assertSerializedChampionshipConfig(value: unknown, index: number): asserts value is SerializedChampionshipConfig {
|
||||
const entityName = 'LeagueScoringConfig';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Money, type Currency, isCurrency } from '@core/racing/domain/value-objects/Money';
|
||||
import { isCurrency, Money, type Currency } from '@core/racing/domain/value-objects/Money';
|
||||
|
||||
import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError';
|
||||
import { assertNumber, assertRecord } from '../schema/TypeOrmSchemaGuards';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { ResultOrmMapper } from './ResultOrmMapper';
|
||||
import { ResultOrmEntity } from '../entities/ResultOrmEntity';
|
||||
import { InvalidResultSchemaError } from '../errors/InvalidResultSchemaError';
|
||||
import { ResultOrmMapper } from './ResultOrmMapper';
|
||||
|
||||
describe('ResultOrmMapper', () => {
|
||||
it('maps persisted schema guard failures into InvalidResultSchemaError', () => {
|
||||
|
||||
@@ -14,23 +14,23 @@ import { WeekdaySet } from '@core/racing/domain/value-objects/WeekdaySet';
|
||||
|
||||
import { SeasonOrmEntity } from '../entities/SeasonOrmEntity';
|
||||
import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError';
|
||||
import type {
|
||||
SerializedSeasonDropPolicy,
|
||||
SerializedSeasonEveryNWeeksRecurrence,
|
||||
SerializedSeasonMonthlyNthWeekdayRecurrence,
|
||||
SerializedSeasonSchedule,
|
||||
SerializedSeasonScoringConfig,
|
||||
SerializedSeasonStewardingConfig,
|
||||
SerializedSeasonWeeklyRecurrence,
|
||||
} from '../serialized/RacingTypeOrmSerialized';
|
||||
import {
|
||||
assertArray,
|
||||
assertEnumValue,
|
||||
assertInteger,
|
||||
assertIsoDate,
|
||||
assertNonEmptyString,
|
||||
assertRecord,
|
||||
assertArray,
|
||||
assertEnumValue,
|
||||
assertInteger,
|
||||
assertIsoDate,
|
||||
assertNonEmptyString,
|
||||
assertRecord,
|
||||
} from '../schema/TypeOrmSchemaGuards';
|
||||
import type {
|
||||
SerializedSeasonDropPolicy,
|
||||
SerializedSeasonEveryNWeeksRecurrence,
|
||||
SerializedSeasonMonthlyNthWeekdayRecurrence,
|
||||
SerializedSeasonSchedule,
|
||||
SerializedSeasonScoringConfig,
|
||||
SerializedSeasonStewardingConfig,
|
||||
SerializedSeasonWeeklyRecurrence,
|
||||
} from '../serialized/RacingTypeOrmSerialized';
|
||||
|
||||
const VALID_SEASON_STATUSES = [
|
||||
'planned',
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { StandingOrmMapper } from './StandingOrmMapper';
|
||||
import { StandingOrmEntity } from '../entities/StandingOrmEntity';
|
||||
import { InvalidStandingSchemaError } from '../errors/InvalidStandingSchemaError';
|
||||
import { StandingOrmMapper } from './StandingOrmMapper';
|
||||
|
||||
describe('StandingOrmMapper', () => {
|
||||
it('maps persisted schema guard failures into InvalidStandingSchemaError', () => {
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { Penalty } from '@core/racing/domain/entities/penalty/Penalty';
|
||||
import { Protest } from '@core/racing/domain/entities/Protest';
|
||||
|
||||
import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError';
|
||||
import { PenaltyOrmEntity, ProtestOrmEntity } from '../entities/MissingRacingOrmEntities';
|
||||
import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError';
|
||||
import {
|
||||
assertDate,
|
||||
assertEnumValue,
|
||||
assertNonEmptyString,
|
||||
assertOptionalInteger,
|
||||
assertOptionalStringOrNull,
|
||||
assertRecord,
|
||||
assertDate,
|
||||
assertEnumValue,
|
||||
assertNonEmptyString,
|
||||
assertOptionalInteger,
|
||||
assertOptionalStringOrNull,
|
||||
assertRecord,
|
||||
} from '../schema/TypeOrmSchemaGuards';
|
||||
|
||||
const VALID_PROTEST_STATUSES = [
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Team } from '@core/racing/domain/entities/Team';
|
||||
import { MediaReference } from '@core/domain/media/MediaReference';
|
||||
import { Team } from '@core/racing/domain/entities/Team';
|
||||
|
||||
import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError';
|
||||
|
||||
@@ -7,11 +7,11 @@ import type { TeamJoinRequest, TeamMembership } from '@core/racing/domain/types/
|
||||
|
||||
import { TeamJoinRequestOrmEntity, TeamMembershipOrmEntity, TeamOrmEntity } from '../entities/TeamOrmEntities';
|
||||
import {
|
||||
assertArray,
|
||||
assertDate,
|
||||
assertEnumValue,
|
||||
assertNonEmptyString,
|
||||
assertOptionalStringOrNull,
|
||||
assertArray,
|
||||
assertDate,
|
||||
assertEnumValue,
|
||||
assertNonEmptyString,
|
||||
assertOptionalStringOrNull,
|
||||
} from '../schema/TypeOrmSchemaGuards';
|
||||
|
||||
const TEAM_ROLES = ['owner', 'manager', 'driver'] as const;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { TeamRatingEventOrmMapper } from './TeamRatingEventOrmMapper';
|
||||
import { TeamRatingEventOrmEntity } from '../entities/TeamRatingEventOrmEntity';
|
||||
import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent';
|
||||
import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId';
|
||||
import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey';
|
||||
import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta';
|
||||
import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey';
|
||||
import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId';
|
||||
import { TeamRatingEventOrmEntity } from '../entities/TeamRatingEventOrmEntity';
|
||||
import { TeamRatingEventOrmMapper } from './TeamRatingEventOrmMapper';
|
||||
|
||||
describe('TeamRatingEventOrmMapper', () => {
|
||||
const validEntityProps = {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent';
|
||||
import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId';
|
||||
import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey';
|
||||
import { TeamRatingDelta } from '@core/racing/domain/value-objects/TeamRatingDelta';
|
||||
import { TeamRatingDimensionKey } from '@core/racing/domain/value-objects/TeamRatingDimensionKey';
|
||||
import { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId';
|
||||
import { TeamRatingEventOrmEntity } from '../entities/TeamRatingEventOrmEntity';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { TeamRatingOrmMapper } from './TeamRatingOrmMapper';
|
||||
import { TeamRatingOrmEntity } from '../entities/TeamRatingOrmEntity';
|
||||
import { TeamRatingValue } from '@core/racing/domain/value-objects/TeamRatingValue';
|
||||
import { TeamRatingSnapshot } from '@core/racing/domain/services/TeamRatingSnapshotCalculator';
|
||||
import { TeamRatingValue } from '@core/racing/domain/value-objects/TeamRatingValue';
|
||||
import { TeamRatingOrmEntity } from '../entities/TeamRatingOrmEntity';
|
||||
import { TeamRatingOrmMapper } from './TeamRatingOrmMapper';
|
||||
|
||||
describe('TeamRatingOrmMapper', () => {
|
||||
const validEntityProps = {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { TeamRatingValue } from '@core/racing/domain/value-objects/TeamRatingValue';
|
||||
import { TeamRatingSnapshot } from '@core/racing/domain/services/TeamRatingSnapshotCalculator';
|
||||
import { TeamRatingValue } from '@core/racing/domain/value-objects/TeamRatingValue';
|
||||
import { TeamRatingOrmEntity } from '../entities/TeamRatingOrmEntity';
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import type { TeamStats } from '@core/racing/domain/repositories/TeamStatsRepository';
|
||||
|
||||
import { TeamStatsOrmEntity } from '../entities/TeamStatsOrmEntity';
|
||||
import {
|
||||
assertNonEmptyString,
|
||||
assertInteger,
|
||||
assertArray,
|
||||
assertEnumValue
|
||||
import {
|
||||
assertArray,
|
||||
assertEnumValue,
|
||||
assertInteger,
|
||||
assertNonEmptyString
|
||||
} from '../schema/TypeOrmSchemaGuards';
|
||||
|
||||
const PERFORMANCE_LEVELS = ['beginner', 'intermediate', 'advanced', 'pro'] as const;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import {
|
||||
TypeOrmGameRepository,
|
||||
TypeOrmLeagueWalletRepository,
|
||||
TypeOrmSponsorRepository,
|
||||
TypeOrmTransactionRepository,
|
||||
TypeOrmGameRepository,
|
||||
TypeOrmLeagueWalletRepository,
|
||||
TypeOrmSponsorRepository,
|
||||
TypeOrmTransactionRepository,
|
||||
} from './CommerceTypeOrmRepositories';
|
||||
|
||||
describe('TypeOrmGameRepository', () => {
|
||||
|
||||
@@ -13,26 +13,26 @@ import type { LeagueWallet } from '@core/racing/domain/entities/league-wallet/Le
|
||||
import type { Transaction, TransactionType } from '@core/racing/domain/entities/league-wallet/Transaction';
|
||||
import type { SeasonSponsorship, SponsorshipTier } from '@core/racing/domain/entities/season/SeasonSponsorship';
|
||||
import type { Sponsor } from '@core/racing/domain/entities/sponsor/Sponsor';
|
||||
import type { SponsorableEntityType, SponsorshipRequest, SponsorshipRequestStatus } from '@core/racing/domain/entities/SponsorshipRequest';
|
||||
import type { SponsorshipPricing } from '@core/racing/domain/value-objects/SponsorshipPricing';
|
||||
import type { SponsorshipRequest, SponsorableEntityType, SponsorshipRequestStatus } from '@core/racing/domain/entities/SponsorshipRequest';
|
||||
|
||||
import {
|
||||
GameOrmEntity,
|
||||
LeagueWalletOrmEntity,
|
||||
SeasonSponsorshipOrmEntity,
|
||||
SponsorOrmEntity,
|
||||
SponsorshipPricingOrmEntity,
|
||||
SponsorshipRequestOrmEntity,
|
||||
TransactionOrmEntity,
|
||||
GameOrmEntity,
|
||||
LeagueWalletOrmEntity,
|
||||
SeasonSponsorshipOrmEntity,
|
||||
SponsorOrmEntity,
|
||||
SponsorshipPricingOrmEntity,
|
||||
SponsorshipRequestOrmEntity,
|
||||
TransactionOrmEntity,
|
||||
} from '../entities/MissingRacingOrmEntities';
|
||||
import {
|
||||
GameOrmMapper,
|
||||
LeagueWalletOrmMapper,
|
||||
SeasonSponsorshipOrmMapper,
|
||||
SponsorOrmMapper,
|
||||
SponsorshipPricingOrmMapper,
|
||||
SponsorshipRequestOrmMapper,
|
||||
TransactionOrmMapper,
|
||||
GameOrmMapper,
|
||||
LeagueWalletOrmMapper,
|
||||
SeasonSponsorshipOrmMapper,
|
||||
SponsorOrmMapper,
|
||||
SponsorshipPricingOrmMapper,
|
||||
SponsorshipRequestOrmMapper,
|
||||
TransactionOrmMapper,
|
||||
} from '../mappers/CommerceOrmMappers';
|
||||
|
||||
export class TypeOrmGameRepository implements GameRepository {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import type { Repository } from 'typeorm';
|
||||
|
||||
import type { PenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository';
|
||||
import type { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
|
||||
import type { Penalty } from '@core/racing/domain/entities/penalty/Penalty';
|
||||
import type { Protest } from '@core/racing/domain/entities/Protest';
|
||||
import type { PenaltyRepository } from '@core/racing/domain/repositories/PenaltyRepository';
|
||||
import type { ProtestRepository } from '@core/racing/domain/repositories/ProtestRepository';
|
||||
|
||||
import { PenaltyOrmEntity, ProtestOrmEntity } from '../entities/MissingRacingOrmEntities';
|
||||
import { PenaltyOrmMapper, ProtestOrmMapper } from '../mappers/StewardingOrmMappers';
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { Repository } from 'typeorm';
|
||||
|
||||
import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository';
|
||||
import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
|
||||
import type { Team } from '@core/racing/domain/entities/Team';
|
||||
import type { TeamMembershipRepository } from '@core/racing/domain/repositories/TeamMembershipRepository';
|
||||
import type { TeamRepository } from '@core/racing/domain/repositories/TeamRepository';
|
||||
import type { TeamJoinRequest, TeamMembership } from '@core/racing/domain/types/TeamMembership';
|
||||
|
||||
import { TeamJoinRequestOrmEntity, TeamMembershipOrmEntity, TeamOrmEntity } from '../entities/TeamOrmEntities';
|
||||
|
||||
@@ -2,10 +2,10 @@ import { describe, expect, it } from 'vitest';
|
||||
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import { TypeOrmDriverRepository } from './TypeOrmDriverRepository';
|
||||
import { DriverOrmMapper } from '../mappers/DriverOrmMapper';
|
||||
import { Driver } from '@core/racing/domain/entities/Driver';
|
||||
import { MediaReference } from '@core/domain/media/MediaReference';
|
||||
import { Driver } from '@core/racing/domain/entities/Driver';
|
||||
import { DriverOrmMapper } from '../mappers/DriverOrmMapper';
|
||||
import { TypeOrmDriverRepository } from './TypeOrmDriverRepository';
|
||||
|
||||
describe('TypeOrmDriverRepository', () => {
|
||||
it('constructor requires injected mapper (no internal mapper instantiation)', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
|
||||
import type { Driver } from '@core/racing/domain/entities/Driver';
|
||||
import type { DriverRepository } from '@core/racing/domain/repositories/DriverRepository';
|
||||
|
||||
import { DriverOrmEntity } from '../entities/DriverOrmEntity';
|
||||
import { DriverOrmMapper } from '../mappers/DriverOrmMapper';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
|
||||
import type { DriverStats } from '@core/racing/application/use-cases/DriverStatsUseCase';
|
||||
import type { DriverStatsRepository } from '@core/racing/domain/repositories/DriverStatsRepository';
|
||||
import type { Repository } from 'typeorm';
|
||||
|
||||
import { DriverStatsOrmEntity } from '../entities/DriverStatsOrmEntity';
|
||||
|
||||
@@ -2,8 +2,8 @@ import { describe, expect, it } from 'vitest';
|
||||
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import { TypeOrmLeagueMembershipRepository } from './TypeOrmLeagueMembershipRepository';
|
||||
import { LeagueMembershipOrmMapper } from '../mappers/LeagueMembershipOrmMapper';
|
||||
import { TypeOrmLeagueMembershipRepository } from './TypeOrmLeagueMembershipRepository';
|
||||
|
||||
describe('TypeOrmLeagueMembershipRepository', () => {
|
||||
it('constructor requires injected mapper (no internal mapper instantiation)', () => {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
|
||||
import type { LeagueMembership } from '@core/racing/domain/entities/LeagueMembership';
|
||||
import { JoinRequest } from '@core/racing/domain/entities/JoinRequest';
|
||||
import type { LeagueMembership } from '@core/racing/domain/entities/LeagueMembership';
|
||||
import type { LeagueMembershipRepository } from '@core/racing/domain/repositories/LeagueMembershipRepository';
|
||||
|
||||
import { LeagueMembershipOrmEntity } from '../entities/LeagueMembershipOrmEntity';
|
||||
import { LeagueMembershipOrmMapper } from '../mappers/LeagueMembershipOrmMapper';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import * as fs from 'node:fs';
|
||||
import * as path from 'node:path';
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import { TypeOrmLeagueRepository } from './TypeOrmLeagueRepository';
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
|
||||
import { League } from '@core/racing/domain/entities/League';
|
||||
import type { LeagueRepository } from '@core/racing/domain/repositories/LeagueRepository';
|
||||
|
||||
import { LeagueOrmEntity } from '../entities/LeagueOrmEntity';
|
||||
import { LeagueOrmMapper } from '../mappers/LeagueOrmMapper';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import type { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository';
|
||||
import { LeagueScoringConfig } from '@core/racing/domain/entities/LeagueScoringConfig';
|
||||
import type { LeagueScoringConfigRepository } from '@core/racing/domain/repositories/LeagueScoringConfigRepository';
|
||||
|
||||
import { LeagueScoringConfigOrmEntity } from '../entities/LeagueScoringConfigOrmEntity';
|
||||
import { LeagueScoringConfigOrmMapper } from '../mappers/LeagueScoringConfigOrmMapper';
|
||||
|
||||
@@ -2,8 +2,8 @@ import { describe, expect, it } from 'vitest';
|
||||
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import { TypeOrmRaceRegistrationRepository } from './TypeOrmRaceRegistrationRepository';
|
||||
import { RaceRegistrationOrmMapper } from '../mappers/RaceRegistrationOrmMapper';
|
||||
import { TypeOrmRaceRegistrationRepository } from './TypeOrmRaceRegistrationRepository';
|
||||
|
||||
describe('TypeOrmRaceRegistrationRepository', () => {
|
||||
it('constructor requires injected mapper (no internal mapper instantiation)', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
|
||||
import type { RaceRegistration } from '@core/racing/domain/entities/RaceRegistration';
|
||||
import type { RaceRegistrationRepository } from '@core/racing/domain/repositories/RaceRegistrationRepository';
|
||||
|
||||
import { RaceRegistrationOrmEntity } from '../entities/RaceRegistrationOrmEntity';
|
||||
import { RaceRegistrationOrmMapper } from '../mappers/RaceRegistrationOrmMapper';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import * as fs from 'node:fs';
|
||||
import * as path from 'node:path';
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import { TypeOrmRaceRepository } from './TypeOrmRaceRepository';
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
||||
import { Race, type RaceStatusValue } from '@core/racing/domain/entities/Race';
|
||||
import type { RaceRepository } from '@core/racing/domain/repositories/RaceRepository';
|
||||
|
||||
import { RaceOrmEntity } from '../entities/RaceOrmEntity';
|
||||
import { RaceOrmMapper } from '../mappers/RaceOrmMapper';
|
||||
|
||||
@@ -2,8 +2,8 @@ import { describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import { TypeOrmResultRepository } from './TypeOrmResultRepository';
|
||||
import { ResultOrmMapper } from '../mappers/ResultOrmMapper';
|
||||
import { TypeOrmResultRepository } from './TypeOrmResultRepository';
|
||||
|
||||
describe('TypeOrmResultRepository', () => {
|
||||
it('requires an injected mapper (does not construct one internally)', () => {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type { DataSource } from 'typeorm';
|
||||
import { In } from 'typeorm';
|
||||
|
||||
import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository';
|
||||
import type { Result } from '@core/racing/domain/entities/result/Result';
|
||||
import type { ResultRepository } from '@core/racing/domain/repositories/ResultRepository';
|
||||
|
||||
import { RaceOrmEntity } from '../entities/RaceOrmEntity';
|
||||
import { ResultOrmEntity } from '../entities/ResultOrmEntity';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import * as fs from 'node:fs';
|
||||
import * as path from 'node:path';
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import { TypeOrmSeasonRepository } from './TypeOrmSeasonRepository';
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
|
||||
import { Season } from '@core/racing/domain/entities/season/Season';
|
||||
import type { SeasonRepository } from '@core/racing/domain/repositories/SeasonRepository';
|
||||
|
||||
import { SeasonOrmEntity } from '../entities/SeasonOrmEntity';
|
||||
import { SeasonOrmMapper } from '../mappers/SeasonOrmMapper';
|
||||
|
||||
@@ -2,10 +2,10 @@ import { describe, expect, it, vi } from 'vitest';
|
||||
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import { TypeOrmStandingRepository } from './TypeOrmStandingRepository';
|
||||
import { LeagueOrmMapper } from '../mappers/LeagueOrmMapper';
|
||||
import { ResultOrmMapper } from '../mappers/ResultOrmMapper';
|
||||
import { StandingOrmMapper } from '../mappers/StandingOrmMapper';
|
||||
import { TypeOrmStandingRepository } from './TypeOrmStandingRepository';
|
||||
|
||||
describe('TypeOrmStandingRepository', () => {
|
||||
it('requires injected mappers (does not construct any internally)', () => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { DataSource } from 'typeorm';
|
||||
|
||||
import type { TeamRatingEventRepository, FindByTeamIdOptions, PaginatedQueryOptions, PaginatedResult } from '@core/racing/domain/repositories/TeamRatingEventRepository';
|
||||
import type { TeamRatingEvent } from '@core/racing/domain/entities/TeamRatingEvent';
|
||||
import type { FindByTeamIdOptions, PaginatedQueryOptions, PaginatedResult, TeamRatingEventRepository } from '@core/racing/domain/repositories/TeamRatingEventRepository';
|
||||
import type { TeamRatingEventId } from '@core/racing/domain/value-objects/TeamRatingEventId';
|
||||
|
||||
import { TeamRatingEventOrmEntity } from '../entities/TeamRatingEventOrmEntity';
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import type { TeamStatsRepository, TeamStats } from '@core/racing/domain/repositories/TeamStatsRepository';
|
||||
import type { TeamStats, TeamStatsRepository } from '@core/racing/domain/repositories/TeamStatsRepository';
|
||||
import type { Repository } from 'typeorm';
|
||||
|
||||
import { TeamStatsOrmEntity } from '../entities/TeamStatsOrmEntity';
|
||||
|
||||
@@ -2,19 +2,19 @@ import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { TypeOrmPersistenceSchemaError } from '../errors/TypeOrmPersistenceSchemaError';
|
||||
import {
|
||||
assertArray,
|
||||
assertBoolean,
|
||||
assertDate,
|
||||
assertEnumValue,
|
||||
assertInteger,
|
||||
assertIsoDate,
|
||||
assertNonEmptyString,
|
||||
assertNumber,
|
||||
assertOptionalBoolean,
|
||||
assertOptionalInteger,
|
||||
assertOptionalNumber,
|
||||
assertOptionalStringOrNull,
|
||||
assertRecord,
|
||||
assertArray,
|
||||
assertBoolean,
|
||||
assertDate,
|
||||
assertEnumValue,
|
||||
assertInteger,
|
||||
assertIsoDate,
|
||||
assertNonEmptyString,
|
||||
assertNumber,
|
||||
assertOptionalBoolean,
|
||||
assertOptionalInteger,
|
||||
assertOptionalNumber,
|
||||
assertOptionalStringOrNull,
|
||||
assertRecord,
|
||||
} from './TypeOrmSchemaGuards';
|
||||
|
||||
describe('TypeOrmSchemaGuards', () => {
|
||||
|
||||
Reference in New Issue
Block a user