13f609562SBartosz Kaszubowskiimport { render, screen } from '@testing-library/react'; 23f609562SBartosz Kaszubowskiimport { createRequire } from 'node:module'; 38de46705SBartosz Kaszubowski 48de46705SBartosz Kaszubowskiimport APISection from './APISection'; 58de46705SBartosz Kaszubowski 63f609562SBartosz Kaszubowskiimport { renderWithHeadings } from '~/common/test-utilities'; 78de46705SBartosz Kaszubowski 83f609562SBartosz Kaszubowskiconst require = createRequire(import.meta.url); 98de46705SBartosz Kaszubowski 108de46705SBartosz Kaszubowskidescribe('APISection', () => { 118de46705SBartosz Kaszubowski test('no data', () => { 123f609562SBartosz Kaszubowski const { container } = render(<APISection packageName="expo-none" testRequire={require} />); 138de46705SBartosz Kaszubowski 147006d33cSBartosz Kaszubowski expect(screen.getAllByText('No API data file found, sorry!')).toHaveLength(1); 158de46705SBartosz Kaszubowski 168de46705SBartosz Kaszubowski expect(container).toMatchSnapshot(); 178de46705SBartosz Kaszubowski }); 188de46705SBartosz Kaszubowski 198de46705SBartosz Kaszubowski test('expo-apple-authentication', () => { 203f609562SBartosz Kaszubowski const { container } = renderWithHeadings( 213f609562SBartosz Kaszubowski <APISection 223f609562SBartosz Kaszubowski packageName="expo-apple-authentication" 233f609562SBartosz Kaszubowski forceVersion="unversioned" 243f609562SBartosz Kaszubowski testRequire={require} 253f609562SBartosz Kaszubowski /> 268de46705SBartosz Kaszubowski ); 278de46705SBartosz Kaszubowski 2813032b48SBartosz Kaszubowski expect(screen.getAllByRole('heading', { level: 2 })).toHaveLength(6); 2913032b48SBartosz Kaszubowski expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(25); 307534da61SBartosz Kaszubowski expect(screen.getAllByRole('table')).toHaveLength(11); 318de46705SBartosz Kaszubowski 327006d33cSBartosz Kaszubowski expect(screen.queryByText('Event Subscriptions')); 337006d33cSBartosz Kaszubowski expect(screen.queryByText('Components')); 348de46705SBartosz Kaszubowski 357006d33cSBartosz Kaszubowski expect(screen.queryByDisplayValue('AppleAuthenticationButton')); 367006d33cSBartosz Kaszubowski expect(screen.queryByDisplayValue('AppleAuthenticationButtonProps')); 377006d33cSBartosz Kaszubowski expect(screen.queryByDisplayValue('Subscription')); 388de46705SBartosz Kaszubowski 397006d33cSBartosz Kaszubowski expect(screen.queryAllByText('Constants')).toHaveLength(0); 407006d33cSBartosz Kaszubowski expect(screen.queryAllByText('Hooks')).toHaveLength(0); 417006d33cSBartosz Kaszubowski expect(screen.queryAllByText('Interfaces')).toHaveLength(0); 428de46705SBartosz Kaszubowski 438de46705SBartosz Kaszubowski expect(container).toMatchSnapshot(); 448de46705SBartosz Kaszubowski }); 458de46705SBartosz Kaszubowski 46f31f564bSBartosz Kaszubowski test('expo-barcode-scanner', () => { 473f609562SBartosz Kaszubowski const { container } = renderWithHeadings( 48f31f564bSBartosz Kaszubowski <APISection 49f31f564bSBartosz Kaszubowski packageName="expo-barcode-scanner" 50f31f564bSBartosz Kaszubowski apiName="BarCodeScanner" 51f31f564bSBartosz Kaszubowski forceVersion="unversioned" 523f609562SBartosz Kaszubowski testRequire={require} 53f31f564bSBartosz Kaszubowski /> 54f31f564bSBartosz Kaszubowski ); 55f31f564bSBartosz Kaszubowski 5613032b48SBartosz Kaszubowski expect(screen.getAllByRole('heading', { level: 2 })).toHaveLength(7); 5713032b48SBartosz Kaszubowski expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(19); 58f31f564bSBartosz Kaszubowski 597006d33cSBartosz Kaszubowski expect(screen.queryByText('Components')); 607006d33cSBartosz Kaszubowski expect(screen.queryByText('Hooks')); 61f31f564bSBartosz Kaszubowski 627006d33cSBartosz Kaszubowski expect(screen.queryByDisplayValue('BarCodeEvent')); 637006d33cSBartosz Kaszubowski expect(screen.queryByDisplayValue('BarCodeScannerProps')); 647006d33cSBartosz Kaszubowski expect(screen.queryByDisplayValue('Subscription')); 657006d33cSBartosz Kaszubowski expect(screen.queryByDisplayValue('usePermissions')); 6613032b48SBartosz Kaszubowski expect(screen.queryByDisplayValue('Inherited Props')); 67f31f564bSBartosz Kaszubowski 687006d33cSBartosz Kaszubowski expect(screen.queryAllByText('Constants')).toHaveLength(0); 69f31f564bSBartosz Kaszubowski 70f31f564bSBartosz Kaszubowski expect(container).toMatchSnapshot(); 71f31f564bSBartosz Kaszubowski }); 72f31f564bSBartosz Kaszubowski 738de46705SBartosz Kaszubowski test('expo-pedometer', () => { 743f609562SBartosz Kaszubowski const { container } = renderWithHeadings( 75*5990cc31SBartosz Kaszubowski <APISection packageName="expo-pedometer" forceVersion="unversioned" testRequire={require} /> 767006d33cSBartosz Kaszubowski ); 778de46705SBartosz Kaszubowski 787006d33cSBartosz Kaszubowski expect(screen.getAllByRole('heading', { level: 2 })).toHaveLength(4); 797006d33cSBartosz Kaszubowski expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(11); 807534da61SBartosz Kaszubowski expect(screen.getAllByRole('table')).toHaveLength(6); 818de46705SBartosz Kaszubowski 827006d33cSBartosz Kaszubowski expect(screen.queryByText('Methods')); 837006d33cSBartosz Kaszubowski expect(screen.queryByText('Enums')); 847006d33cSBartosz Kaszubowski expect(screen.queryByText('Interfaces')); 857006d33cSBartosz Kaszubowski expect(screen.queryByText('Types')); 868de46705SBartosz Kaszubowski 877006d33cSBartosz Kaszubowski expect(screen.queryByDisplayValue('PermissionResponse')); 887006d33cSBartosz Kaszubowski expect(screen.queryByDisplayValue('PermissionStatus')); 898de46705SBartosz Kaszubowski 907006d33cSBartosz Kaszubowski expect(screen.queryAllByText('Constants')).toHaveLength(0); 917006d33cSBartosz Kaszubowski expect(screen.queryAllByText('Event Subscriptions')).toHaveLength(0); 927006d33cSBartosz Kaszubowski expect(screen.queryAllByText('Hooks')).toHaveLength(0); 938de46705SBartosz Kaszubowski 948de46705SBartosz Kaszubowski expect(container).toMatchSnapshot(); 958de46705SBartosz Kaszubowski }); 96dfb21e5eSBartosz Kaszubowski 97dfb21e5eSBartosz Kaszubowski test('expo-asset', () => { 983f609562SBartosz Kaszubowski renderWithHeadings( 993f609562SBartosz Kaszubowski <APISection packageName="expo-asset" forceVersion="unversioned" testRequire={require} /> 1003f609562SBartosz Kaszubowski ); 101dfb21e5eSBartosz Kaszubowski 102dfb21e5eSBartosz Kaszubowski expect(screen.getAllByRole('heading', { level: 2 })).toHaveLength(3); 103dfb21e5eSBartosz Kaszubowski expect(screen.getAllByRole('heading', { level: 3 })).toHaveLength(18); 104dfb21e5eSBartosz Kaszubowski expect(screen.getAllByRole('table')).toHaveLength(7); 105dfb21e5eSBartosz Kaszubowski 106dfb21e5eSBartosz Kaszubowski expect(screen.queryByText('Classes')); 107dfb21e5eSBartosz Kaszubowski expect(screen.queryByText('Asset Properties')); 108dfb21e5eSBartosz Kaszubowski expect(screen.queryByText('Asset Methods')); 109dfb21e5eSBartosz Kaszubowski 110dfb21e5eSBartosz Kaszubowski expect(screen.queryByDisplayValue('localUri')); 111dfb21e5eSBartosz Kaszubowski expect(screen.queryByDisplayValue('fromURI()')); 112dfb21e5eSBartosz Kaszubowski 113dfb21e5eSBartosz Kaszubowski expect(screen.queryAllByText('Props')).toHaveLength(0); 114dfb21e5eSBartosz Kaszubowski expect(screen.queryAllByText('Enums')).toHaveLength(0); 115dfb21e5eSBartosz Kaszubowski }); 1168de46705SBartosz Kaszubowski}); 117