import { render, screen } from "@testing-library/react-native"; import { INatIconButton } from "components/SharedComponents"; import React from "react"; describe( "INatIconButton", () => { it( "renders correctly", () => { render( { // 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( { // 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( { // 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( // // ).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( , ) ).toThrow( /accessibility/i ); console.error.mockRestore( ); } );