-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathscripts.test.js
More file actions
80 lines (73 loc) · 2.19 KB
/
Copy pathscripts.test.js
File metadata and controls
80 lines (73 loc) · 2.19 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const {
fetchData,
filterData,
calculateAverage,
formatData,
} = require("./scripts");
// Mock da função fetch para simular uma resposta da API
global.fetch = jest.fn(() =>
Promise.resolve({
ok: true,
json: () =>
Promise.resolve([
{ id: 1, name: "Item A", value: 10 },
{ id: 2, name: "Item B", value: 20 },
{ id: 3, name: "Item A", value: 30 },
]),
})
);
describe("fetchData", () => {
it("deve retornar dados quando a requisição for bem-sucedida", async () => {
const data = await fetchData("https://api.example.com/items");
expect(data).toEqual([
{ id: 1, name: "Item A", value: 10 },
{ id: 2, name: "Item B", value: 20 },
{ id: 3, name: "Item A", value: 30 },
]);
});
it("deve retornar null e logar um erro quando a requisição falhar", async () => {
fetch.mockImplementationOnce(() => Promise.resolve({ ok: false }));
const data = await fetchData("https://api.example.com/items");
expect(data).toBeNull();
});
});
describe("filterData", () => {
it("deve filtrar os dados corretamente com base na chave e valor", () => {
const data = [
{ id: 1, name: "Item A", value: 10 },
{ id: 2, name: "Item B", value: 20 },
{ id: 3, name: "Item A", value: 30 },
];
const result = filterData(data, "name", "Item A");
expect(result).toEqual([
{ id: 1, name: "Item A", value: 10 },
{ id: 3, name: "Item A", value: 30 },
]);
});
});
describe("calculateAverage", () => {
it("deve calcular a média corretamente", () => {
const data = [
{ id: 1, value: 10 },
{ id: 2, value: 20 },
{ id: 3, value: 30 },
];
const average = calculateAverage(data, "value");
expect(average).toBe(20);
});
it("deve retornar 0 se os dados estiverem vazios", () => {
const data = [];
const average = calculateAverage(data, "value");
expect(average).toBe(0);
});
});
describe("formatData", () => {
it("deve formatar os dados corretamente", () => {
const data = [
{ id: 1, name: "Item A" },
{ id: 2, name: "Item B" },
];
const formatted = formatData(data, "name");
expect(formatted).toBe("name: Item A, name: Item B");
});
});