refactor(guest): retire legacy guest app and move shared modules
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-02-06 08:42:53 +01:00
parent b14435df8b
commit 0a08f2704f
191 changed files with 243 additions and 12631 deletions

View File

@@ -1,10 +1,11 @@
import React from 'react';
import { describe, expect, it, vi } from 'vitest';
import { render, screen } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
vi.mock('@tamagui/stacks', () => ({
YStack: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
XStack: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
YStack: ({ children, ...props }: { children: React.ReactNode }) => <div {...props}>{children}</div>,
XStack: ({ children, ...props }: { children: React.ReactNode }) => <div {...props}>{children}</div>,
}));
vi.mock('@tamagui/text', () => ({
@@ -23,7 +24,7 @@ vi.mock('../components/AppShell', () => ({
default: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
}));
vi.mock('@/guest/components/PullToRefresh', () => ({
vi.mock('@/shared/guest/components/PullToRefresh', () => ({
default: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
}));
@@ -35,7 +36,7 @@ vi.mock('../context/GuestIdentityContext', () => ({
useOptionalGuestIdentity: () => ({ name: 'Alex' }),
}));
vi.mock('@/guest/i18n/useTranslation', () => ({
vi.mock('@/shared/guest/i18n/useTranslation', () => ({
useTranslation: () => ({
t: (key: string, options?: unknown, fallback?: string) => {
if (typeof fallback === 'string') return fallback;
@@ -45,12 +46,12 @@ vi.mock('@/guest/i18n/useTranslation', () => ({
}),
}));
vi.mock('@/guest/i18n/LocaleContext', () => ({
vi.mock('@/shared/guest/i18n/LocaleContext', () => ({
useLocale: () => ({ locale: 'de' }),
}));
vi.mock('../lib/guestTheme', () => ({
useGuestThemeVariant: () => ({ isDark: false }),
useGuestThemeVariant: vi.fn(() => ({ isDark: false })),
}));
vi.mock('../lib/bento', () => ({
@@ -70,7 +71,7 @@ vi.mock('react-router-dom', () => ({
useNavigate: () => vi.fn(),
}));
vi.mock('@/guest/lib/localizeTaskLabel', () => ({
vi.mock('@/shared/guest/lib/localizeTaskLabel', () => ({
localizeTaskLabel: (value: string | null) => value,
}));
@@ -116,6 +117,7 @@ vi.mock('../services/achievementsApi', () => ({
}));
import AchievementsScreen from '../screens/AchievementsScreen';
import { useGuestThemeVariant } from '../lib/guestTheme';
describe('AchievementsScreen', () => {
it('renders personal achievements content', async () => {
@@ -123,6 +125,16 @@ describe('AchievementsScreen', () => {
expect(await screen.findByText('Badges')).toBeInTheDocument();
expect(screen.getByText('First upload')).toBeInTheDocument();
expect(screen.getByText('Upload photo')).toBeInTheDocument();
expect(screen.getByText('Upload one photo')).toBeInTheDocument();
});
it('uses dark-mode feed row and placeholder styles when dark theme is active', async () => {
vi.mocked(useGuestThemeVariant).mockReturnValue({ isDark: true });
const { container } = render(<AchievementsScreen />);
await userEvent.click(await screen.findByRole('button', { name: 'Feed' }));
expect(container.querySelector('[backgroundcolor="rgba(255, 255, 255, 0.08)"]')).toBeTruthy();
expect(container.querySelector('[backgroundcolor="rgba(255, 255, 255, 0.12)"]')).toBeTruthy();
});
});