51 lines
1.7 KiB
TypeScript
51 lines
1.7 KiB
TypeScript
import React from 'react';
|
|
import { describe, expect, it, vi } from 'vitest';
|
|
import { render } from '@testing-library/react';
|
|
|
|
vi.mock('@tamagui/core', () => ({
|
|
useTheme: () => ({
|
|
primary: { val: '#FF5A5F' },
|
|
borderColor: { val: '#e5e7eb' },
|
|
surface: { val: '#ffffff' },
|
|
}),
|
|
}));
|
|
|
|
vi.mock('@tamagui/stacks', () => ({
|
|
YStack: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
|
|
XStack: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
|
|
}));
|
|
|
|
vi.mock('@tamagui/text', () => ({
|
|
SizableText: ({ children }: { children: React.ReactNode }) => <span>{children}</span>,
|
|
}));
|
|
|
|
vi.mock('@tamagui/react-native-web-lite', () => ({
|
|
Pressable: ({ children }: { children: React.ReactNode }) => <button type="button">{children}</button>,
|
|
}));
|
|
|
|
vi.mock('@tamagui/sheet', () => {
|
|
const Sheet = ({ children }: { children: React.ReactNode }) => <div>{children}</div>;
|
|
Sheet.Frame = ({ children }: { children: React.ReactNode }) => <div>{children}</div>;
|
|
Sheet.Overlay = ({ children }: { children?: React.ReactNode }) => <div>{children}</div>;
|
|
Sheet.ScrollView = ({ children }: { children: React.ReactNode }) => <div>{children}</div>;
|
|
Sheet.Handle = () => <div />;
|
|
return { Sheet };
|
|
});
|
|
|
|
import { LegalConsentSheet } from '../LegalConsentSheet';
|
|
|
|
describe('LegalConsentSheet', () => {
|
|
it('renders the required consent checkboxes when open', () => {
|
|
const { getAllByRole } = render(
|
|
<LegalConsentSheet
|
|
open={true}
|
|
onClose={vi.fn()}
|
|
onConfirm={vi.fn()}
|
|
t={(key: string, fallback?: string) => fallback ?? key}
|
|
/>
|
|
);
|
|
|
|
expect(getAllByRole('checkbox')).toHaveLength(2);
|
|
});
|
|
});
|