summaryrefslogtreecommitdiff
path: root/std/log/logger_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/log/logger_test.ts')
-rw-r--r--std/log/logger_test.ts93
1 files changed, 93 insertions, 0 deletions
diff --git a/std/log/logger_test.ts b/std/log/logger_test.ts
new file mode 100644
index 000000000..d8d205c08
--- /dev/null
+++ b/std/log/logger_test.ts
@@ -0,0 +1,93 @@
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+import { test } from "../testing/mod.ts";
+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"]);
+});