/
consola.test.ts
65 lines (56 loc) 路 1.54 KB
/
consola.test.ts
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
import { describe, test, expect } from "vitest";
import { ConsolaReporter, LogLevels, LogObject, createConsola } from "../src";
describe("consola", () => {
test("can set level", () => {
const consola = createConsola();
expect(consola.level).toBe(1);
for (let i = 0; i <= 5; i++) {
consola.level = i;
expect(consola.level).toBe(i);
}
});
test("silent log level does't print logs", async () => {
const logs: LogObject[] = [];
const TestReporter: ConsolaReporter = {
log(logObj) {
logs.push(logObj);
},
};
const consola = createConsola({
throttle: 100,
level: LogLevels.silent,
reporters: [TestReporter],
});
for (let i = 0; i < 10; i++) {
consola.log("SPAM");
}
await wait(200);
expect(logs.length).toBe(0);
});
test("can see spams without ending log", async () => {
const logs: LogObject[] = [];
const TestReporter: ConsolaReporter = {
log(logObj) {
logs.push(logObj);
},
};
const consola = createConsola({
throttle: 100,
level: LogLevels.info,
reporters: [TestReporter],
});
for (let i = 0; i < 10; i++) {
consola.log("SPAM");
}
await wait(300);
expect(logs.length).toBe(7);
// 6 + Last one indicating it repeated 4
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
expect(logs.at(-1)!.args).toEqual(["SPAM", "(repeated 4 times)"]);
});
});
function wait(delay) {
return new Promise((resolve) => {
setTimeout(resolve, delay);
});
}