index.test.tsx57 lines · main
| 1 | import { screen } from '@testing-library/react' |
| 2 | import { beforeAll, describe, expect, test, vi } from 'vitest' |
| 3 | |
| 4 | import { customRender as render } from '@/tests/lib/custom-render' |
| 5 | |
| 6 | vi.mock('@/components/interfaces/Home/Home', () => ({ |
| 7 | Home: () => <div data-testid="old-home" />, |
| 8 | })) |
| 9 | |
| 10 | vi.mock('@/components/interfaces/ProjectHome/Home', () => ({ |
| 11 | ProjectHome: () => <div data-testid="project-home" />, |
| 12 | })) |
| 13 | |
| 14 | vi.mock('@/components/layouts/DefaultLayout', () => ({ |
| 15 | default: ({ children }: { children: React.ReactNode }) => <>{children}</>, |
| 16 | })) |
| 17 | |
| 18 | vi.mock('@/components/layouts/ProjectLayout', () => ({ |
| 19 | ProjectLayoutWithAuth: ({ children }: { children: React.ReactNode }) => <>{children}</>, |
| 20 | })) |
| 21 | |
| 22 | vi.mock('@/lib/gotrue', () => ({ |
| 23 | auth: { onAuthStateChange: vi.fn() }, |
| 24 | })) |
| 25 | |
| 26 | describe('when IS_PLATFORM is true', () => { |
| 27 | beforeAll(() => { |
| 28 | vi.doMock('common', async (importOriginal: () => Promise<any>) => { |
| 29 | const mod = await importOriginal() |
| 30 | return { ...mod, IS_PLATFORM: true } |
| 31 | }) |
| 32 | }) |
| 33 | |
| 34 | test('renders ProjectHome', async () => { |
| 35 | const { default: HomePage } = await import('@/pages/project/[ref]/index') |
| 36 | render(<HomePage dehydratedState={undefined} />) |
| 37 | expect(screen.getByTestId('project-home')).toBeInTheDocument() |
| 38 | expect(screen.queryByTestId('old-home')).not.toBeInTheDocument() |
| 39 | }) |
| 40 | }) |
| 41 | |
| 42 | describe('when IS_PLATFORM is false', () => { |
| 43 | beforeAll(() => { |
| 44 | vi.resetModules() |
| 45 | vi.doMock('common', async (importOriginal: () => Promise<any>) => { |
| 46 | const mod = await importOriginal() |
| 47 | return { ...mod, IS_PLATFORM: false } |
| 48 | }) |
| 49 | }) |
| 50 | |
| 51 | test('renders Home', async () => { |
| 52 | const { default: HomePage } = await import('@/pages/project/[ref]/index') |
| 53 | render(<HomePage dehydratedState={undefined} />) |
| 54 | expect(screen.getByTestId('old-home')).toBeInTheDocument() |
| 55 | expect(screen.queryByTestId('project-home')).not.toBeInTheDocument() |
| 56 | }) |
| 57 | }) |