-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.test.tsx
49 lines (46 loc) · 1.19 KB
/
App.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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import React from "react";
import { render, screen } from "@testing-library/react";
import App from "./App";
import { QueryClient, QueryClientProvider } from "react-query";
import axios from "axios";
import { rest } from "msw";
import { setupServer } from "msw/node";
axios.defaults.adapter = require("axios/lib/adapters/http");
axios.defaults.baseURL = "https://api.unsplash.com/";
const server = setupServer(
rest.get("https://api.unsplash.com/topics", (req, res, ctx) => {
return res(
ctx.json([
{
slug: "blockchain",
cover_photo: {
urls: {
raw: "",
},
},
},
])
);
})
);
beforeAll(() => server.listen());
afterEach(() => server.resetHandlers());
afterAll(() => server.close());
describe("Initial Render tests", () => {
const client = new QueryClient({
defaultOptions: {
queries: {
retry: false,
},
},
});
test("Asks to select a topic", () => {
render(
<QueryClientProvider client={client}>
<App />
</QueryClientProvider>
);
const linkElement = screen.getByText(/Please select a topic/i);
expect(linkElement).toBeInTheDocument();
});
});