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
50
51
|
import { jest } from "@jest/globals";
jest.unstable_mockModule("../src/db.js", () => ({
insertDB: jest.fn(),
getDB: jest.fn(),
saveDB: jest.fn(),
}));
const { insertDB, getDB, saveDB } = await import("../src/db.js");
const { newNote, getAllNotes, removeNote } = await import("../src/notes.js");
beforeEach(() => {
insertDB.mockClear();
getDB.mockClear();
saveDB.mockClear();
});
test("newNote inserts data and returns it", async () => {
const note = {
content: "this is a new note",
id: 1,
tags: ["test"],
};
insertDB.mockResolvedValue(note);
const result = await newNote(note.content, note.tags);
expect(result.content).toEqual(note.content);
expect(result.tags).toEqual(note.tags);
});
test("getAllNotes returns all notes", async () => {
const db = {
notes: ["note1", "note2", "note3"],
};
getDB.mockResolvedValue(db);
const result = await getAllNotes();
expect(result).toEqual(db.notes);
});
test("removeNote does nothing if id is not found", async () => {
const notes = [
{ id: 1, content: "note 1" },
{ id: 2, content: "note 2" },
{ id: 3, content: "note 3" },
];
saveDB.mockResolvedValue(notes);
const idToRemove = 4;
const result = await removeNote(idToRemove);
expect(result).toBeUndefined();
});
|