();
+
+ return {
+ ...actual,
+ useShareTokenQuery: () => ({
+ share: mockShare,
+ data: mockShare,
+ isLoading: false,
+ isFetching: false,
+ }),
+ };
+});
+
+vi.mock('@/app/(main)/boards/[boardId]/BoardViewPage', () => ({
+ BoardViewPage: () => board view page
,
+}));
+
+vi.mock('@/app/(main)/links/[linkId]/LinkPage', () => ({
+ LinkPage: () => link page
,
+}));
+
+vi.mock('@/app/(main)/pixels/[pixelId]/PixelPage', () => ({
+ PixelPage: () => pixel page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/(reports)/attribution/AttributionPage', () => ({
+ AttributionPage: () => attribution page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/(reports)/breakdown/BreakdownPage', () => ({
+ BreakdownPage: () => breakdown page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/(reports)/funnels/FunnelsPage', () => ({
+ FunnelsPage: () => funnels page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/(reports)/goals/GoalsPage', () => ({
+ GoalsPage: () => goals page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/(reports)/journeys/JourneysPage', () => ({
+ JourneysPage: () => journeys page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/(reports)/performance/PerformancePage', () => ({
+ PerformancePage: () => performance page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/(reports)/retention/RetentionPage', () => ({
+ RetentionPage: () => retention page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/(reports)/revenue/RevenuePage', () => ({
+ RevenuePage: () => revenue page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/(reports)/utm/UTMPage', () => ({
+ UTMPage: () => utm page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/compare/ComparePage', () => ({
+ ComparePage: () => compare page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/events/EventsPage', () => ({
+ EventsPage: () => events page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/realtime/RealtimePage', () => ({
+ RealtimePage: () => realtime page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/sessions/SessionsPage', () => ({
+ SessionsPage: () => sessions page
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/WebsiteHeader', () => ({
+ WebsiteHeader: () => website header
,
+}));
+
+vi.mock('@/app/(main)/websites/[websiteId]/WebsitePage', () => ({
+ WebsitePage: () => website page
,
+}));
+
+vi.mock('@/app/(main)/websites/WebsiteProvider', () => ({
+ WebsiteProvider: ({ children }: { children: ReactNode }) => {children}
,
+}));
+
+vi.mock('@/components/common/PageBody', () => ({
+ PageBody: ({ children }: { children: ReactNode }) => {children}
,
+}));
+
+vi.mock('@/components/input/MobileMenuButton', () => ({
+ MobileMenuButton: ({ children }: { children: ReactNode | ((props: { close: () => void }) => ReactNode) }) => (
+ {typeof children === 'function' ? children({ close: () => {} }) : children}
+ ),
+}));
+
+vi.mock('./ShareFooter', () => ({
+ ShareFooter: () => share footer
,
+}));
+
+vi.mock('./ShareNav', () => ({
+ ShareNav: () => share nav
,
+}));
+
+describe('SharePage', () => {
+ beforeEach(() => {
+ resetTestNavigation();
+ initTheme.mockReset();
+ setShareData(mockShare, { token: mockShare.token });
+ });
+
+ test('renders an allowed website share route', () => {
+ render(
+
+
+ ,
+ { route: '/share/slug/events' },
+ );
+
+ expect(screen.getAllByText('share nav')).toHaveLength(2);
+ expect(screen.getByText('website header')).toBeInTheDocument();
+ expect(screen.getByText('events page')).toBeInTheDocument();
+ expect(initTheme).toHaveBeenCalled();
+ });
+});