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