/
logger_test.ts
93 lines (71 loc) · 2.23 KB
/
logger_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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
const { test } = Deno;
import { assertEquals } from "../testing/asserts.ts";
import { LogRecord, Logger } from "./logger.ts";
import { LogLevel } from "./levels.ts";
import { BaseHandler } from "./handlers.ts";
class TestHandler extends BaseHandler {
public messages: string[] = [];
public records: LogRecord[] = [];
handle(record: LogRecord): void {
this.records.push(record);
super.handle(record);
}
public log(str: string): void {
this.messages.push(str);
}
}
test(function simpleLogger(): void {
const handler = new TestHandler("DEBUG");
let logger = new Logger("DEBUG");
assertEquals(logger.level, LogLevel.DEBUG);
assertEquals(logger.levelName, "DEBUG");
assertEquals(logger.handlers, []);
logger = new Logger("DEBUG", [handler]);
assertEquals(logger.handlers, [handler]);
});
test(function customHandler(): void {
const handler = new TestHandler("DEBUG");
const logger = new Logger("DEBUG", [handler]);
logger.debug("foo", 1, 2);
const record = handler.records[0];
assertEquals(record.msg, "foo");
assertEquals(record.args, [1, 2]);
assertEquals(record.level, LogLevel.DEBUG);
assertEquals(record.levelName, "DEBUG");
assertEquals(handler.messages, ["DEBUG foo"]);
});
test(function logFunctions(): void {
const doLog = (level: string): TestHandler => {
const handler = new TestHandler(level);
const logger = new Logger(level, [handler]);
logger.debug("foo");
logger.info("bar");
logger.warning("baz");
logger.error("boo");
logger.critical("doo");
return handler;
};
let handler: TestHandler;
handler = doLog("DEBUG");
assertEquals(handler.messages, [
"DEBUG foo",
"INFO bar",
"WARNING baz",
"ERROR boo",
"CRITICAL doo",
]);
handler = doLog("INFO");
assertEquals(handler.messages, [
"INFO bar",
"WARNING baz",
"ERROR boo",
"CRITICAL doo",
]);
handler = doLog("WARNING");
assertEquals(handler.messages, ["WARNING baz", "ERROR boo", "CRITICAL doo"]);
handler = doLog("ERROR");
assertEquals(handler.messages, ["ERROR boo", "CRITICAL doo"]);
handler = doLog("CRITICAL");
assertEquals(handler.messages, ["CRITICAL doo"]);
});