1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-27 17:49:08 -05:00
denoland-deno/log/handlers_test.ts

97 lines
2.4 KiB
TypeScript
Raw Normal View History

2019-02-07 11:45:47 -05:00
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
2019-03-06 16:39:50 -05:00
import { test } from "../testing/mod.ts";
import { assertEquals } from "../testing/asserts.ts";
2019-01-27 10:21:00 -05:00
import { LogLevel, getLevelName, getLevelByName } from "./levels.ts";
import { BaseHandler } from "./handlers.ts";
class TestHandler extends BaseHandler {
public messages: string[] = [];
public log(str: string): void {
this.messages.push(str);
}
}
2019-04-24 07:41:23 -04:00
test(function simpleHandler(): void {
2019-01-27 10:21:00 -05:00
const cases = new Map<number, string[]>([
[
LogLevel.DEBUG,
[
"DEBUG debug-test",
"INFO info-test",
"WARNING warning-test",
"ERROR error-test",
"CRITICAL critical-test"
]
],
[
LogLevel.INFO,
[
"INFO info-test",
"WARNING warning-test",
"ERROR error-test",
"CRITICAL critical-test"
]
],
[
LogLevel.WARNING,
["WARNING warning-test", "ERROR error-test", "CRITICAL critical-test"]
],
[LogLevel.ERROR, ["ERROR error-test", "CRITICAL critical-test"]],
[LogLevel.CRITICAL, ["CRITICAL critical-test"]]
2019-01-27 10:21:00 -05:00
]);
for (const [testCase, messages] of cases.entries()) {
const testLevel = getLevelName(testCase);
const handler = new TestHandler(testLevel);
for (const levelName in LogLevel) {
const level = getLevelByName(levelName);
handler.handle({
msg: `${levelName.toLowerCase()}-test`,
args: [],
datetime: new Date(),
level: level,
levelName: levelName
});
}
assertEquals(handler.level, testCase);
assertEquals(handler.levelName, testLevel);
assertEquals(handler.messages, messages);
2019-01-27 10:21:00 -05:00
}
});
2019-04-24 07:41:23 -04:00
test(function testFormatterAsString(): void {
2019-01-27 10:21:00 -05:00
const handler = new TestHandler("DEBUG", {
formatter: "test {levelName} {msg}"
});
handler.handle({
msg: "Hello, world!",
args: [],
datetime: new Date(),
level: LogLevel.DEBUG,
levelName: "DEBUG"
});
assertEquals(handler.messages, ["test DEBUG Hello, world!"]);
2019-01-27 10:21:00 -05:00
});
2019-04-24 07:41:23 -04:00
test(function testFormatterAsFunction(): void {
2019-01-27 10:21:00 -05:00
const handler = new TestHandler("DEBUG", {
2019-04-24 07:41:23 -04:00
formatter: (logRecord): string =>
2019-01-27 10:21:00 -05:00
`fn formmatter ${logRecord.levelName} ${logRecord.msg}`
});
handler.handle({
msg: "Hello, world!",
args: [],
datetime: new Date(),
level: LogLevel.ERROR,
levelName: "ERROR"
});
assertEquals(handler.messages, ["fn formmatter ERROR Hello, world!"]);
2019-01-27 10:21:00 -05:00
});