summaryrefslogtreecommitdiff
path: root/std/log/handlers_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/log/handlers_test.ts')
m---------std0
-rw-r--r--std/log/handlers_test.ts96
2 files changed, 96 insertions, 0 deletions
diff --git a/std b/std
deleted file mode 160000
-Subproject 43aafbf33285753e7b42230f0eb7969b300f71c
diff --git a/std/log/handlers_test.ts b/std/log/handlers_test.ts
new file mode 100644
index 000000000..329541fa1
--- /dev/null
+++ b/std/log/handlers_test.ts
@@ -0,0 +1,96 @@
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+import { test } from "../testing/mod.ts";
+import { assertEquals } from "../testing/asserts.ts";
+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);
+ }
+}
+
+test(function simpleHandler(): void {
+ 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"]]
+ ]);
+
+ 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);
+ }
+});
+
+test(function testFormatterAsString(): void {
+ 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!"]);
+});
+
+test(function testFormatterAsFunction(): void {
+ const handler = new TestHandler("DEBUG", {
+ formatter: (logRecord): string =>
+ `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!"]);
+});