import * as React from "react"; import { View, TouchableOpacity } from "react-native"; import { render } from "@testing-library/react-native"; import { Touchable } from ".."; const ChildrenComponent = () => ; const props = { testID: "some-test-id", onPress: jest.fn(), children: , }; describe("", () => { describe("when running in automated tests environment", () => { beforeEach(() => { process.env.ZAPP_UI_TESTS_ENV = "true"; }); afterEach(() => { delete process.env.ZAPP_UI_TESTS_ENV; }); it("has accessible flag set to false", () => { const { toJSON, UNSAFE_getByType } = render(); const touchableWrapper = UNSAFE_getByType(TouchableOpacity); expect(toJSON()).toMatchSnapshot(); expect(touchableWrapper.props).toHaveProperty("accessible", false); }); }); describe("when not running in automated tests environment", () => { beforeEach(props.onPress.mockClear); it("renders correctly", () => { const { toJSON } = render(); expect(toJSON()).toMatchSnapshot(); }); it("has accessible flag set to true", () => { const { UNSAFE_getByType } = render(); const touchableWrapper = UNSAFE_getByType(TouchableOpacity); expect(touchableWrapper.props).toHaveProperty("accessible", true); }); it("assigns testID and accessibilityLabel props correctly", () => { const { UNSAFE_getByType } = render(); const touchableWrapper = UNSAFE_getByType(TouchableOpacity); expect(touchableWrapper.props).toHaveProperty("testID", props.testID); expect(touchableWrapper.props).toHaveProperty( "accessibilityLabel", props.testID ); }); it("calls the onPress event when it is pressed", () => { const { UNSAFE_getByType } = render(); const touchableWrapper = UNSAFE_getByType(TouchableOpacity); touchableWrapper.props.onPress(); expect(props.onPress).toHaveBeenCalledTimes(1); }); }); });