This commit is contained in:
2026-01-08 16:30:15 +01:00
parent 52e9a2f6a7
commit 064fdd1b0a
25 changed files with 3068 additions and 0 deletions

View File

@@ -0,0 +1,72 @@
import { describe, expect, it } from 'vitest';
import { CreateLeagueSeasonScheduleRacePresenter } from './LeagueSeasonScheduleMutationPresenters';
describe('CreateLeagueSeasonScheduleRacePresenter', () => {
it('presents create result with raceId', () => {
const presenter = new CreateLeagueSeasonScheduleRacePresenter();
presenter.present({
raceId: 'race-123',
});
const vm = presenter.getResponseModel();
expect(vm).not.toBeNull();
expect(vm!.raceId).toBe('race-123');
});
it('returns null before present is called', () => {
const presenter = new CreateLeagueSeasonScheduleRacePresenter();
const vm = presenter.getResponseModel();
expect(vm).toBeNull();
});
it('can be reset after presenting', () => {
const presenter = new CreateLeagueSeasonScheduleRacePresenter();
presenter.present({
raceId: 'race-123',
});
expect(presenter.getResponseModel()).not.toBeNull();
presenter.reset();
expect(presenter.getResponseModel()).toBeNull();
});
it('can present multiple times with different race IDs', () => {
const presenter = new CreateLeagueSeasonScheduleRacePresenter();
// First presentation
presenter.present({
raceId: 'race-123',
});
let vm = presenter.getResponseModel();
expect(vm!.raceId).toBe('race-123');
// Second presentation (simulating reuse)
presenter.present({
raceId: 'race-456',
});
vm = presenter.getResponseModel();
expect(vm!.raceId).toBe('race-456');
});
it('handles raceId with special characters', () => {
const presenter = new CreateLeagueSeasonScheduleRacePresenter();
presenter.present({
raceId: 'race-abc-123_xyz',
});
const vm = presenter.getResponseModel();
expect(vm).not.toBeNull();
expect(vm!.raceId).toBe('race-abc-123_xyz');
});
});

View File

@@ -0,0 +1,59 @@
import { describe, expect, it } from 'vitest';
import { DeleteLeagueSeasonScheduleRacePresenter } from './LeagueSeasonScheduleMutationPresenters';
describe('DeleteLeagueSeasonScheduleRacePresenter', () => {
it('presents delete result with success=true', () => {
const presenter = new DeleteLeagueSeasonScheduleRacePresenter();
presenter.present({
success: true,
});
const vm = presenter.getResponseModel();
expect(vm).not.toBeNull();
expect(vm!.success).toBe(true);
});
it('returns null before present is called', () => {
const presenter = new DeleteLeagueSeasonScheduleRacePresenter();
const vm = presenter.getResponseModel();
expect(vm).toBeNull();
});
it('can be reset after presenting', () => {
const presenter = new DeleteLeagueSeasonScheduleRacePresenter();
presenter.present({
success: true,
});
expect(presenter.getResponseModel()).not.toBeNull();
presenter.reset();
expect(presenter.getResponseModel()).toBeNull();
});
it('can present multiple times', () => {
const presenter = new DeleteLeagueSeasonScheduleRacePresenter();
// First presentation
presenter.present({
success: true,
});
let vm = presenter.getResponseModel();
expect(vm!.success).toBe(true);
// Second presentation (simulating reuse)
presenter.present({
success: true,
});
vm = presenter.getResponseModel();
expect(vm!.success).toBe(true);
});
});

View File

@@ -0,0 +1,68 @@
import { describe, expect, it } from 'vitest';
import { PublishLeagueSeasonSchedulePresenter } from './LeagueSeasonScheduleMutationPresenters';
describe('PublishLeagueSeasonSchedulePresenter', () => {
it('presents publish result with success and published=true', () => {
const presenter = new PublishLeagueSeasonSchedulePresenter();
presenter.present({
success: true,
seasonId: 'season-1',
published: true,
});
const vm = presenter.getResponseModel();
expect(vm).not.toBeNull();
expect(vm!.success).toBe(true);
expect(vm!.published).toBe(true);
});
it('returns null before present is called', () => {
const presenter = new PublishLeagueSeasonSchedulePresenter();
const vm = presenter.getResponseModel();
expect(vm).toBeNull();
});
it('can be reset after presenting', () => {
const presenter = new PublishLeagueSeasonSchedulePresenter();
presenter.present({
success: true,
seasonId: 'season-1',
published: true,
});
expect(presenter.getResponseModel()).not.toBeNull();
presenter.reset();
expect(presenter.getResponseModel()).toBeNull();
});
it('can present multiple times with different results', () => {
const presenter = new PublishLeagueSeasonSchedulePresenter();
// First presentation
presenter.present({
success: true,
seasonId: 'season-1',
published: true,
});
let vm = presenter.getResponseModel();
expect(vm!.published).toBe(true);
// Second presentation (simulating reuse)
presenter.present({
success: true,
seasonId: 'season-2',
published: true,
});
vm = presenter.getResponseModel();
expect(vm!.published).toBe(true);
});
});

View File

@@ -0,0 +1,68 @@
import { describe, expect, it } from 'vitest';
import { UnpublishLeagueSeasonSchedulePresenter } from './LeagueSeasonScheduleMutationPresenters';
describe('UnpublishLeagueSeasonSchedulePresenter', () => {
it('presents unpublish result with success and published=false', () => {
const presenter = new UnpublishLeagueSeasonSchedulePresenter();
presenter.present({
success: true,
seasonId: 'season-1',
published: false,
});
const vm = presenter.getResponseModel();
expect(vm).not.toBeNull();
expect(vm!.success).toBe(true);
expect(vm!.published).toBe(false);
});
it('returns null before present is called', () => {
const presenter = new UnpublishLeagueSeasonSchedulePresenter();
const vm = presenter.getResponseModel();
expect(vm).toBeNull();
});
it('can be reset after presenting', () => {
const presenter = new UnpublishLeagueSeasonSchedulePresenter();
presenter.present({
success: true,
seasonId: 'season-1',
published: false,
});
expect(presenter.getResponseModel()).not.toBeNull();
presenter.reset();
expect(presenter.getResponseModel()).toBeNull();
});
it('can present multiple times with different results', () => {
const presenter = new UnpublishLeagueSeasonSchedulePresenter();
// First presentation
presenter.present({
success: true,
seasonId: 'season-1',
published: false,
});
let vm = presenter.getResponseModel();
expect(vm!.published).toBe(false);
// Second presentation (simulating reuse)
presenter.present({
success: true,
seasonId: 'season-2',
published: false,
});
vm = presenter.getResponseModel();
expect(vm!.published).toBe(false);
});
});

View File

@@ -0,0 +1,59 @@
import { describe, expect, it } from 'vitest';
import { UpdateLeagueSeasonScheduleRacePresenter } from './LeagueSeasonScheduleMutationPresenters';
describe('UpdateLeagueSeasonScheduleRacePresenter', () => {
it('presents update result with success=true', () => {
const presenter = new UpdateLeagueSeasonScheduleRacePresenter();
presenter.present({
success: true,
});
const vm = presenter.getResponseModel();
expect(vm).not.toBeNull();
expect(vm!.success).toBe(true);
});
it('returns null before present is called', () => {
const presenter = new UpdateLeagueSeasonScheduleRacePresenter();
const vm = presenter.getResponseModel();
expect(vm).toBeNull();
});
it('can be reset after presenting', () => {
const presenter = new UpdateLeagueSeasonScheduleRacePresenter();
presenter.present({
success: true,
});
expect(presenter.getResponseModel()).not.toBeNull();
presenter.reset();
expect(presenter.getResponseModel()).toBeNull();
});
it('can present multiple times', () => {
const presenter = new UpdateLeagueSeasonScheduleRacePresenter();
// First presentation
presenter.present({
success: true,
});
let vm = presenter.getResponseModel();
expect(vm!.success).toBe(true);
// Second presentation (simulating reuse)
presenter.present({
success: true,
});
vm = presenter.getResponseModel();
expect(vm!.success).toBe(true);
});
});