import React from "react"; import { render } from "@testing-library/react-native"; import { FormErrorBanner } from "./FormErrorBanner"; import { atlantisContextDefaultValues } from "../../../AtlantisContext"; import * as atlantisContext from "../../../AtlantisContext/AtlantisContext"; afterEach(jest.clearAllMocks); describe("FormErrorBanner", () => { const atlantisContextSpy = jest.spyOn(atlantisContext, "useAtlantisContext"); beforeEach(() => { atlantisContextSpy.mockReturnValue({ ...atlantisContextDefaultValues, isOnline: true, }); }); const networkError = "An error occurred"; const userError = { title: "My error", messages: ["userError1", "userError2"], }; const couldNotSavechanges = "Could not save changes"; it("should render network error banner when online and network errors exist", () => { const { getByText, queryByText } = render( , ); // Show: Network Error only expect(getByText(couldNotSavechanges)).toBeDefined(); expect(queryByText(userError.title)).toBeNull(); }); it("should render user error banner when online and user errors exist", () => { const { getByText, queryByText } = render( , ); // Show: User Error only expect(getByText(userError.title)).toBeDefined(); expect(getByText(userError.messages[0])).toBeDefined(); expect(getByText(userError.messages[1])).toBeDefined(); expect(queryByText(couldNotSavechanges)).toBeNull(); }); it("should render user error banner with just title when online", () => { const userErrorJustTitle = { title: "My error", }; const { getByText, queryByText } = render( , ); // Show: User Error only expect(getByText(userErrorJustTitle.title)).toBeDefined(); expect(queryByText(couldNotSavechanges)).toBeNull(); }); });