github.com/tilt-dev/tilt@v0.36.0/web/src/FatalErrorModal.test.tsx (about)

     1  import React from "react"
     2  import ReactDOM from "react-dom"
     3  import ReactModal from "react-modal"
     4  import FatalErrorModal from "./FatalErrorModal"
     5  import { ShowFatalErrorModal } from "./types"
     6  import { render } from "@testing-library/react"
     7  
     8  const fakeHandleCloseModal = () => {}
     9  let originalCreatePortal = ReactDOM.createPortal
    10  
    11  describe("FatalErrorModal", () => {
    12    beforeEach(() => {
    13      // Note: `body` is used as the app element _only_ in a test env
    14      // since the app root element isn't available; in prod, it should
    15      // be set as the app root so that accessibility features are set correctly
    16      ReactModal.setAppElement(document.body)
    17      let mock: any = (node: any) => node
    18      ReactDOM.createPortal = mock
    19    })
    20  
    21    afterEach(() => {
    22      ReactDOM.createPortal = originalCreatePortal
    23    })
    24  
    25    it("doesn't render if there's no fatal error and the modal hasn't been closed", () => {
    26      render(
    27        <FatalErrorModal
    28          error={null}
    29          showFatalErrorModal={ShowFatalErrorModal.Default}
    30          handleClose={fakeHandleCloseModal}
    31        />
    32      )
    33    })
    34  
    35    it("does render if there is a fatal error and the modal hasn't been closed", () => {
    36      render(
    37        <FatalErrorModal
    38          error={"i'm an error"}
    39          showFatalErrorModal={ShowFatalErrorModal.Default}
    40          handleClose={fakeHandleCloseModal}
    41        />
    42      )
    43    })
    44  
    45    it("doesn't render if there is a fatal error and the modal has been closed", () => {
    46      render(
    47        <FatalErrorModal
    48          error={"i'm an error"}
    49          showFatalErrorModal={ShowFatalErrorModal.Hide}
    50          handleClose={fakeHandleCloseModal}
    51        />
    52      )
    53    })
    54  })