-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCreateNote.spec.tsx
31 lines (25 loc) · 993 Bytes
/
CreateNote.spec.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
import { createNoteMock } from "../../api/note/mocks";
import { routes } from "../../lib/routes";
import { createNote } from "../../mocks/calls";
import { server } from "../../mocks/node";
import { render, screen } from "../../test-utils";
import { CreateNote } from "./CreateNote";
const mockNavigate = vi.fn();
vi.mock("react-router-dom", () => ({
useNavigate: () => mockNavigate,
}));
describe("Page - Note", () => {
it("should create a new note", async () => {
const mockNote = createNoteMock();
/**
* Use out mock api helpers to create a POST endpoint
* with a fixed mock for easier assertions
*/
server.use(createNote(mockNote));
const { user } = render(<CreateNote />);
await user.type(screen.getByLabelText("Title"), mockNote.title);
await user.type(screen.getByLabelText("Content"), mockNote.content);
await user.click(screen.getByRole("button", { name: "Create note" }));
expect(mockNavigate).toHaveBeenCalledWith(routes.note(mockNote.id));
});
});