Skip to content

Commit 6a35316

Browse files
committed
Add tests
1 parent 2ebf8eb commit 6a35316

4 files changed

Lines changed: 125 additions & 20 deletions

File tree

src/utils/readers/readAll.ts

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,8 @@
11
import { data } from "../../data/readRaw";
2-
import pc from "picocolors";
32

43
export async function readAll() {
5-
// TODO: Depois usar cli table3 ou algo do tipo, para nao exibir o index
6-
const Table = require("cli-table3");
7-
84
const projects = await data();
95
if (projects.length != 0) {
10-
// const table = new Table({
11-
// head: ["id", "name", "started", "completed"],
12-
// style: {
13-
// head: [],
14-
// border: ["white"],
15-
// },
16-
// });
17-
// projects.forEach((p) => {
18-
// table.push([
19-
// pc.yellow(p.id),
20-
// p.name,
21-
// pc.yellow(p.projectStarted),
22-
// pc.yellow(p.projectCompleted),
23-
// ]);
24-
// });
25-
// console.log(table.toString());
266
return projects;
277
} else {
288
return null;

tests/filters.test.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { describe, test, expect, vi } from "bun:test"
2+
3+
vi.mock("../src/data/readRaw", () => {
4+
return {
5+
data: async () => [
6+
{
7+
id: 1,
8+
name: "Hello",
9+
description: "Projeto de teste tipado",
10+
projectStarted: 1,
11+
projectCompleted: 0,
12+
createdAt: "2024-03-20",
13+
budget: 5000,
14+
clientName: "Cliente Alpha"
15+
},
16+
{
17+
id: 2,
18+
name: "World",
19+
projectStarted: 1,
20+
projectCompleted: 1,
21+
createdAt: "2024-03-21"
22+
}
23+
]
24+
}
25+
})
26+
27+
import { getProjectsByCompleted, getProjectsByStarted } from "../src/utils/readers/filters"
28+
29+
describe("Filter utily (Mocked)", () => {
30+
test("You must filter the started projects", () => {
31+
const result = getProjectsByStarted()
32+
expect(result).toBeArray()
33+
})
34+
35+
test("You must filter the completed projetcs", () => {
36+
const result = getProjectsByCompleted()
37+
expect(result).toBeArray()
38+
})
39+
})
40+
41+

tests/finder.test.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import { describe, test, expect, vi } from "bun:test"
2+
3+
vi.mock("../src/data/readRaw", () => {
4+
return {
5+
data: async () => [
6+
{
7+
id: 1,
8+
name: "Hello",
9+
description: "Projeto de teste tipado",
10+
projectStarted: 1,
11+
projectCompleted: 0,
12+
createdAt: "2024-03-20",
13+
budget: 5000,
14+
clientName: "Cliente Alpha"
15+
},
16+
{
17+
id: 2,
18+
name: "World",
19+
projectStarted: 1,
20+
projectCompleted: 1,
21+
createdAt: "2024-03-21"
22+
}
23+
]
24+
}
25+
})
26+
27+
import { getProjectById, getProjectByName } from "../src/utils/readers/finder"
28+
29+
describe("Finder utily (Mocked)", () => {
30+
31+
test("You must find the project by id", async () => {
32+
const result = await getProjectById(1)
33+
expect(result?.budget).toBe(5000)
34+
})
35+
36+
test("Must return undefined for non-existent id", async () => {
37+
const result = await getProjectById(100000000000000)
38+
expect(result?.name).toBeUndefined()
39+
})
40+
41+
test("You should find the project by name", async () => {
42+
const result = await getProjectByName("World")
43+
expect(result?.projectCompleted).toBe(1)
44+
})
45+
46+
test("Must return undefined for non-existent name", async () => {
47+
const result = await getProjectByName("aijfuehdfnrcjijghiuhgujfn")
48+
expect(result?.id).toBeUndefined()
49+
})
50+
})

tests/readAll.test.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { describe, test, expect, vi } from "bun:test"
2+
3+
vi.mock("../src/data/readRaw", () => {
4+
return {
5+
data: async () => [
6+
{
7+
id: 1,
8+
name: "Hello",
9+
description: "Projeto de teste tipado",
10+
projectStarted: 1,
11+
projectCompleted: 0,
12+
createdAt: "2024-03-20",
13+
budget: 5000,
14+
clientName: "Cliente Alpha"
15+
},
16+
{
17+
id: 2,
18+
name: "World",
19+
projectStarted: 1,
20+
projectCompleted: 1,
21+
createdAt: "2024-03-21"
22+
}
23+
]
24+
}
25+
})
26+
27+
import { readAll } from "../src/utils/readers/readAll"
28+
29+
describe("Read All utily (Mocked)", () => {
30+
test("You return all projects", async () => {
31+
const result = await readAll()
32+
expect(result).toBeObject()
33+
})
34+
})

0 commit comments

Comments
 (0)