Fix TypeScript typecheck errors
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled

This commit is contained in:
Codex Agent
2026-01-30 15:56:06 +01:00
parent 916b204688
commit b1f9f7cee0
42 changed files with 324 additions and 72 deletions

View File

@@ -2,6 +2,8 @@ import React from 'react';
import { beforeEach, describe, expect, it, vi } from 'vitest';
import { act, render, screen } from '@testing-library/react';
import { MemoryRouter } from 'react-router-dom';
import type { EventContextValue } from '../../../context/EventContext';
import type { TenantEvent } from '../../../api';
vi.mock('react-i18next', () => ({
useTranslation: () => ({ t: (key: string, fallback?: string) => fallback ?? key, i18n: { language: 'en-GB' } }),
@@ -55,12 +57,27 @@ vi.mock('../UserMenuSheet', () => ({
UserMenuSheet: () => <div data-testid="user-menu-sheet" />,
}));
const eventContext = {
const baseEvent: TenantEvent = {
id: 1,
name: 'Test Event',
slug: 'event-1',
event_date: '2024-01-01',
event_type_id: null,
event_type: null,
status: 'published',
settings: {},
};
const eventContext: EventContextValue = {
events: [],
activeEvent: { slug: 'event-1', name: 'Test Event', event_date: '2024-01-01', status: 'active', settings: {} },
isLoading: false,
isError: false,
activeEvent: baseEvent,
activeSlug: baseEvent.slug,
hasMultipleEvents: false,
hasEvents: true,
selectEvent: vi.fn(),
refetch: vi.fn(),
};
vi.mock('../../../context/EventContext', () => ({
@@ -129,9 +146,25 @@ describe('MobileShell', () => {
addEventListener: vi.fn(),
removeEventListener: vi.fn(),
});
document.title = '';
eventContext.events = [];
eventContext.hasMultipleEvents = false;
eventContext.activeEvent = { slug: 'event-1', name: 'Test Event', event_date: '2024-01-01', status: 'active', settings: {} };
eventContext.activeEvent = { ...baseEvent };
eventContext.activeSlug = baseEvent.slug;
});
it('sets the document title with the app prefix', async () => {
await act(async () => {
render(
<MemoryRouter>
<MobileShell activeTab="home" title="Dashboard">
<div>Body</div>
</MobileShell>
</MemoryRouter>
);
});
expect(document.title).toBe('Fotospiel.App Event Admin · Dashboard');
});
it('renders quick QR as icon-only button', async () => {
@@ -171,8 +204,14 @@ describe('MobileShell', () => {
it('shows the event switcher when multiple events are available', async () => {
eventContext.events = [
{ slug: 'event-1', name: 'Test Event', event_date: '2024-01-01', status: 'active', settings: {} },
{ slug: 'event-2', name: 'Second Event', event_date: '2024-02-01', status: 'active', settings: {} },
{ ...baseEvent },
{
...baseEvent,
id: 2,
slug: 'event-2',
name: 'Second Event',
event_date: '2024-02-01',
},
];
await act(async () => {
@@ -190,8 +229,14 @@ describe('MobileShell', () => {
it('hides the event switcher on the events list page', async () => {
eventContext.events = [
{ slug: 'event-1', name: 'Test Event', event_date: '2024-01-01', status: 'active', settings: {} },
{ slug: 'event-2', name: 'Second Event', event_date: '2024-02-01', status: 'active', settings: {} },
{ ...baseEvent },
{
...baseEvent,
id: 2,
slug: 'event-2',
name: 'Second Event',
event_date: '2024-02-01',
},
];
await act(async () => {