Files
iNaturalistReactNative/tests/unit/components/SharedComponents/Buttons/INatIconButton.test.js
Johannes Klein b4516b7b25 Update react native to v0.78.x (#3043)
* Update package.json

* Update package.json

* Updates for native files with upgrade-helpers

* Update .flowconfig

* Update package-lock.json

* Update Podfile.lock

* Add react-dom types

* Update package-lock.json

* Wrong install

* Use types-react-codemod

* Update TaxonSearch.tsx

* Remove react-native-accessibility-engine dependency

This is currently not maintained and not compatible with RN 0.78

* Comment out accessibility tests

* Disable broken snapshot test

* Move broken test

* Move broken test

* Move broken test

* Remove duplicate file

* Move broken tests

* Move broken tests

* Move broken tests

* Move broken tests

* Move broken tests

* Move broken test

* Remove duplicate file

* Move broken tests
2025-08-09 13:47:46 +02:00

84 lines
2.2 KiB
JavaScript

import { render, screen } from "@testing-library/react-native";
import { INatIconButton } from "components/SharedComponents";
import React from "react";
describe( "INatIconButton", () => {
it( "renders correctly", () => {
render(
<INatIconButton
icon="camera"
onPress={( ) => {
// all is well
}}
accessibilityLabel="Camera"
/>
);
// Snapshot test
expect( screen ).toMatchSnapshot();
} );
it( "throws an error when it receives an inaccessibly small width", ( ) => {
// Even though the error is caught, it still gets printed to the console
// so we mock that out to avoid the wall of red text.
jest.spyOn( console, "error" );
console.error.mockImplementation( () => undefined );
expect( () => render(
<INatIconButton
icon="camera"
width={10}
onPress={() => {
// all is well
}}
/>
) ).toThrow( /width/i );
console.error.mockRestore();
} );
it( "throws an error when it receives an inaccessibly small height", ( ) => {
// Even though the error is caught, it still gets printed to the console
// so we mock that out to avoid the wall of red text.
jest.spyOn( console, "error" );
console.error.mockImplementation( () => undefined );
expect( () => render(
<INatIconButton
icon="camera"
height={10}
onPress={() => {
// all is well
}}
/>
) ).toThrow( /height/i );
console.error.mockRestore();
} );
} );
it( "should be accessible if accessibility label is passes as props", ( ) => {
// Disabled during the update to RN 0.78
// expect(
// <INatIconButton
// icon="camera"
// onPress={jest.fn( )}
// accessibilityLabel="Navigate to camera"
// />
// ).toBeAccessible( );
} );
it( "throws an error when no accessibility label is passed into props", ( ) => {
// Even though the error is caught, it still gets printed to the console
// so we mock that out to avoid the wall of red text.
jest.spyOn( console, "error" );
console.error.mockImplementation( () => undefined );
expect( () => render(
<INatIconButton
icon="camera"
/>
) ).toThrow( /accessibility/i );
console.error.mockRestore( );
} );