Skip to content

Commit

Permalink
Add some tests for RoadblockModal
Browse files Browse the repository at this point in the history
  • Loading branch information
Li Juen Chang committed Apr 7, 2021
1 parent 874a3e2 commit 8b5d059
Showing 1 changed file with 57 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import { cleanup, render, fireEvent } from "@testing-library/react"
import * as React from "react"
import RoadblockModal, { RoadblockModalProps } from "./RoadblockModal"

afterEach(cleanup)

const RoadblockModalWrapper = (props: Partial<RoadblockModalProps>) => (
<RoadblockModal
isOpen={true}
title="Example modal title"
onDismiss={() => undefined}
children="Example modal body"
{...props}
/>
)

describe("<RoadblockModal />", () => {
it("renders an open modal with the provided content", () => {
const { getByText } = render(
<RoadblockModalWrapper>Example modal body</RoadblockModalWrapper>
)
expect(getByText("Example modal body")).toBeTruthy()
})

it("supports a dismiss action when escape key is pressed", () => {
const handleDismiss = jest.fn()
const document = render(
<RoadblockModalWrapper onDismiss={handleDismiss}>
Example modal body
</RoadblockModalWrapper>
)
fireEvent.keyUp(document.container, { key: "Escape", code: "Escape" })
expect(handleDismiss).toHaveBeenCalledTimes(1)
})

it("supports a dismiss action when dismiss button is pressed", () => {
const handleDismiss = jest.fn()
const { getByTitle } = render(
<RoadblockModalWrapper onDismiss={handleDismiss}>
Example modal body
</RoadblockModalWrapper>
)
fireEvent.click(getByTitle(/Dismiss/i))
expect(handleDismiss).toHaveBeenCalledTimes(1)
})

it("supports a dismiss action when back button is pressed", () => {
const handleDismiss = jest.fn()
const { getByText } = render(
<RoadblockModalWrapper onDismiss={handleDismiss}>
Example modal body
</RoadblockModalWrapper>
)
fireEvent.click(getByText(/Back/i))
expect(handleDismiss).toHaveBeenCalledTimes(1)
})
})

0 comments on commit 8b5d059

Please sign in to comment.