diff options
Diffstat (limited to 'std/log/logger_test.ts')
-rw-r--r-- | std/log/logger_test.ts | 93 |
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"]); +}); |