starling-devex 0.1.2

Starling: a local dev orchestrator with a central daemon, shared named-URL proxy, and a k9s-style TUI (a Rust port of Tilt + portless)
import React from "react"
import ReactDOM from "react-dom"
import ReactModal from "react-modal"
import FatalErrorModal from "./FatalErrorModal"
import { ShowFatalErrorModal } from "./types"
import { render } from "@testing-library/react"

const fakeHandleCloseModal = () => {}
let originalCreatePortal = ReactDOM.createPortal

describe("FatalErrorModal", () => {
  beforeEach(() => {
    // Note: `body` is used as the app element _only_ in a test env
    // since the app root element isn't available; in prod, it should
    // be set as the app root so that accessibility features are set correctly
    ReactModal.setAppElement(document.body)
    let mock: any = (node: any) => node
    ReactDOM.createPortal = mock
  })

  afterEach(() => {
    ReactDOM.createPortal = originalCreatePortal
  })

  it("doesn't render if there's no fatal error and the modal hasn't been closed", () => {
    render(
      <FatalErrorModal
        error={null}
        showFatalErrorModal={ShowFatalErrorModal.Default}
        handleClose={fakeHandleCloseModal}
      />
    )
  })

  it("does render if there is a fatal error and the modal hasn't been closed", () => {
    render(
      <FatalErrorModal
        error={"i'm an error"}
        showFatalErrorModal={ShowFatalErrorModal.Default}
        handleClose={fakeHandleCloseModal}
      />
    )
  })

  it("doesn't render if there is a fatal error and the modal has been closed", () => {
    render(
      <FatalErrorModal
        error={"i'm an error"}
        showFatalErrorModal={ShowFatalErrorModal.Hide}
        handleClose={fakeHandleCloseModal}
      />
    )
  })
})