Update guest PWA v2 UI and likes
This commit is contained in:
82
resources/js/guest/pages/__tests__/GalleryPageHero.test.tsx
Normal file
82
resources/js/guest/pages/__tests__/GalleryPageHero.test.tsx
Normal file
@@ -0,0 +1,82 @@
|
||||
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 GalleryPage from '../GalleryPage';
|
||||
import { LocaleProvider } from '../../i18n/LocaleContext';
|
||||
|
||||
vi.mock('../../polling/usePollGalleryDelta', () => ({
|
||||
usePollGalleryDelta: () => ({
|
||||
photos: [],
|
||||
loading: false,
|
||||
newCount: 0,
|
||||
acknowledgeNew: vi.fn(),
|
||||
refreshNow: vi.fn(),
|
||||
}),
|
||||
}));
|
||||
|
||||
vi.mock('../../context/EventBrandingContext', () => ({
|
||||
useEventBranding: () => ({
|
||||
branding: {
|
||||
primaryColor: '#FF5A5F',
|
||||
secondaryColor: '#FFF8F5',
|
||||
fontFamily: 'Space Grotesk, sans-serif',
|
||||
buttons: { radius: 12, style: 'filled', linkColor: '#FF5A5F' },
|
||||
typography: { heading: 'Space Grotesk, sans-serif', body: 'Space Grotesk, sans-serif' },
|
||||
},
|
||||
}),
|
||||
}));
|
||||
|
||||
vi.mock('../../context/EventStatsContext', () => ({
|
||||
useEventStats: () => ({
|
||||
likesCount: 12,
|
||||
guestCount: 5,
|
||||
onlineGuests: 2,
|
||||
tasksSolved: 0,
|
||||
latestPhotoAt: null,
|
||||
loading: false,
|
||||
eventKey: 'demo',
|
||||
slug: 'demo',
|
||||
}),
|
||||
}));
|
||||
|
||||
vi.mock('../../services/eventApi', () => ({
|
||||
fetchEvent: vi.fn().mockResolvedValue({ name: 'Demo Event' }),
|
||||
}));
|
||||
|
||||
vi.mock('../../components/ToastHost', () => ({
|
||||
useToast: () => ({ push: vi.fn() }),
|
||||
}));
|
||||
|
||||
vi.mock('../../components/ShareSheet', () => ({
|
||||
default: () => null,
|
||||
}));
|
||||
|
||||
vi.mock('../PhotoLightbox', () => ({
|
||||
default: () => null,
|
||||
}));
|
||||
|
||||
vi.mock('../../components/PullToRefresh', () => ({
|
||||
default: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
|
||||
}));
|
||||
|
||||
vi.mock('../../components/FiltersBar', () => ({
|
||||
default: () => <div data-testid="filters-bar" />,
|
||||
}));
|
||||
|
||||
describe('GalleryPage hero CTA', () => {
|
||||
it('links to the upload page', async () => {
|
||||
render(
|
||||
<LocaleProvider defaultLocale="de">
|
||||
<MemoryRouter initialEntries={['/e/demo/gallery']}>
|
||||
<Routes>
|
||||
<Route path="/e/:token/gallery" element={<GalleryPage />} />
|
||||
</Routes>
|
||||
</MemoryRouter>
|
||||
</LocaleProvider>
|
||||
);
|
||||
|
||||
const link = await screen.findByRole('link', { name: /neues foto hochladen/i });
|
||||
expect(link).toHaveAttribute('href', '/e/demo/upload');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user