-
Notifications
You must be signed in to change notification settings - Fork 0
/
QueryExample.test.tsx
34 lines (31 loc) · 1.36 KB
/
QueryExample.test.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { render, screen, setupQueryClient, waitFor } from "../test-utils"
import QueryExample from "./QueryExample"
import userEvent from "@testing-library/user-event"
describe("Query example", () => {
it("shows 0 fetch count initially", async () => {
const queryClient = setupQueryClient()
render(<QueryExample />, { queryClient })
await waitFor(() =>
expect(screen.getByText("Fetch count: 0")).toBeInTheDocument(),
)
})
it("shows 1 fetch count when user clicks button to fetch data", async () => {
const queryClient = setupQueryClient()
const user = userEvent.setup()
render(<QueryExample />, { queryClient })
const button = screen.getByRole("button", { name: /fetch some data/i })
await user.click(button)
const text = screen.getByText("Fetch count: 1")
expect(text).toBeInTheDocument()
})
it("shows 2 fetch count when user clicks button to fetch data twice", async () => {
const queryClient = setupQueryClient()
const user = userEvent.setup()
render(<QueryExample />, { queryClient })
const button = screen.getByRole("button", { name: /fetch some data/i })
await user.click(button)
await user.click(button)
const text = screen.getByText("Fetch count: 2")
expect(text).toBeInTheDocument()
})
})