import { render, screen } from '@testing-library/react'; import { createRequire } from 'node:module'; import APISection from './APISection'; import { renderWithHeadings } from '~/common/test-utilities'; const require = createRequire(import.meta.url); describe('APISection', () => { test('no data', () => { const { container } = render(); expect(screen.getAllByText('No API data file found, sorry!')).toHaveLength(1); expect(container).toMatchSnapshot(); }); test('expo-apple-authentication', () => { const { container } = renderWithHeadings( ); expect(screen.getAllByRole('heading', { level: 2 })).toHaveLength(6); expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(25); expect(screen.getAllByRole('table')).toHaveLength(11); expect(screen.queryByText('Event Subscriptions')); expect(screen.queryByText('Components')); expect(screen.queryByDisplayValue('AppleAuthenticationButton')); expect(screen.queryByDisplayValue('AppleAuthenticationButtonProps')); expect(screen.queryByDisplayValue('Subscription')); expect(screen.queryAllByText('Constants')).toHaveLength(0); expect(screen.queryAllByText('Hooks')).toHaveLength(0); expect(screen.queryAllByText('Interfaces')).toHaveLength(0); expect(container).toMatchSnapshot(); }); test('expo-barcode-scanner', () => { const { container } = renderWithHeadings( ); expect(screen.getAllByRole('heading', { level: 2 })).toHaveLength(7); expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(19); expect(screen.queryByText('Components')); expect(screen.queryByText('Hooks')); expect(screen.queryByDisplayValue('BarCodeEvent')); expect(screen.queryByDisplayValue('BarCodeScannerProps')); expect(screen.queryByDisplayValue('Subscription')); expect(screen.queryByDisplayValue('usePermissions')); expect(screen.queryByDisplayValue('Inherited Props')); expect(screen.queryAllByText('Constants')).toHaveLength(0); expect(container).toMatchSnapshot(); }); test('expo-pedometer', () => { const { container } = renderWithHeadings( ); expect(screen.getAllByRole('heading', { level: 2 })).toHaveLength(4); expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(11); expect(screen.getAllByRole('table')).toHaveLength(6); expect(screen.queryByText('Methods')); expect(screen.queryByText('Enums')); expect(screen.queryByText('Interfaces')); expect(screen.queryByText('Types')); expect(screen.queryByDisplayValue('PermissionResponse')); expect(screen.queryByDisplayValue('PermissionStatus')); expect(screen.queryAllByText('Constants')).toHaveLength(0); expect(screen.queryAllByText('Event Subscriptions')).toHaveLength(0); expect(screen.queryAllByText('Hooks')).toHaveLength(0); expect(container).toMatchSnapshot(); }); test('expo-asset', () => { renderWithHeadings( ); expect(screen.getAllByRole('heading', { level: 2 })).toHaveLength(3); expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(18); expect(screen.getAllByRole('table')).toHaveLength(7); expect(screen.queryByText('Classes')); expect(screen.queryByText('Asset Properties')); expect(screen.queryByText('Asset Methods')); expect(screen.queryByDisplayValue('localUri')); expect(screen.queryByDisplayValue('fromURI()')); expect(screen.queryAllByText('Props')).toHaveLength(0); expect(screen.queryAllByText('Enums')).toHaveLength(0); }); });