Files
fotospiel-app/resources/js/guest/pages/__tests__/LiveShowPlayerPage.test.tsx
Codex Agent 53eb560aa5
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled
Add live show player playback and effects
2026-01-05 18:31:01 +01:00

56 lines
1.4 KiB
TypeScript

import React from 'react';
import { describe, expect, it, vi } from 'vitest';
import { render, screen } from '@testing-library/react';
import { MemoryRouter, Route, Routes } from 'react-router-dom';
import LiveShowPlayerPage from '../LiveShowPlayerPage';
vi.mock('../../hooks/useLiveShowState', () => ({
useLiveShowState: () => ({
status: 'ready',
connection: 'polling',
error: null,
event: { id: 1, name: 'Showcase' },
photos: [],
settings: {
retention_window_hours: 12,
moderation_mode: 'manual',
playback_mode: 'newest_first',
pace_mode: 'auto',
fixed_interval_seconds: 8,
layout_mode: 'single',
effect_preset: 'film_cut',
effect_intensity: 70,
background_mode: 'gradient',
},
}),
}));
vi.mock('../../hooks/useLiveShowPlayback', () => ({
useLiveShowPlayback: () => ({
frame: [],
nextFrame: [],
layout: 'single',
frameKey: 'empty',
}),
}));
vi.mock('../../i18n/useTranslation', () => ({
useTranslation: () => ({
t: (_key: string, fallback: string) => fallback,
}),
}));
describe('LiveShowPlayerPage', () => {
it('renders empty state when no photos', () => {
render(
<MemoryRouter initialEntries={['/show/demo']}>
<Routes>
<Route path="/show/:token" element={<LiveShowPlayerPage />} />
</Routes>
</MemoryRouter>
);
expect(screen.getByText('Noch keine Live-Fotos')).toBeInTheDocument();
});
});