diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-10-10 05:31:23 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-10 05:31:23 -0400 |
commit | e7562eed8c816cd0d97aab6b818d7c8453dbaa2b (patch) | |
tree | c5a9f536e79d2c8d2d02897511a9138acaf35394 /std/log/test.ts | |
parent | 3882c9d19a641e0c919f1350d87c6d7ee280cf78 (diff) | |
parent | 93f7f00c956c14620ef031626f124b57397ca867 (diff) |
Merge deno_std in main repo (#3091)
The history of deno_std is persevered but rewritten to update links to issues and PRs
Fixes denoland/deno_std#603
Diffstat (limited to 'std/log/test.ts')
m--------- | std | 0 | ||||
-rw-r--r-- | std/log/test.ts | 105 |
2 files changed, 105 insertions, 0 deletions
diff --git a/std b/std deleted file mode 160000 -Subproject 43aafbf33285753e7b42230f0eb7969b300f71c diff --git a/std/log/test.ts b/std/log/test.ts new file mode 100644 index 000000000..5a17f9a35 --- /dev/null +++ b/std/log/test.ts @@ -0,0 +1,105 @@ +// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. +import { test } from "../testing/mod.ts"; +import { assertEquals } from "../testing/asserts.ts"; +import * as log from "./mod.ts"; +import { LogLevel } from "./levels.ts"; + +class TestHandler extends log.handlers.BaseHandler { + public messages: string[] = []; + + log(msg: string): void { + this.messages.push(msg); + } +} + +test(async function defaultHandlers(): Promise<void> { + const loggers: { + [key: string]: (msg: string, ...args: unknown[]) => void; + } = { + DEBUG: log.debug, + INFO: log.info, + WARNING: log.warning, + ERROR: log.error, + CRITICAL: log.critical + }; + + for (const levelName in LogLevel) { + if (levelName === "NOTSET") { + continue; + } + + const logger = loggers[levelName]; + const handler = new TestHandler(levelName); + + await log.setup({ + handlers: { + default: handler + }, + loggers: { + default: { + level: levelName, + handlers: ["default"] + } + } + }); + + logger("foo"); + logger("bar", 1, 2); + + assertEquals(handler.messages, [`${levelName} foo`, `${levelName} bar`]); + } +}); + +test(async function getLogger(): Promise<void> { + const handler = new TestHandler("DEBUG"); + + await log.setup({ + handlers: { + default: handler + }, + loggers: { + default: { + level: "DEBUG", + handlers: ["default"] + } + } + }); + + const logger = log.getLogger(); + + assertEquals(logger.levelName, "DEBUG"); + assertEquals(logger.handlers, [handler]); +}); + +test(async function getLoggerWithName(): Promise<void> { + const fooHandler = new TestHandler("DEBUG"); + + await log.setup({ + handlers: { + foo: fooHandler + }, + loggers: { + bar: { + level: "INFO", + handlers: ["foo"] + } + } + }); + + const logger = log.getLogger("bar"); + + assertEquals(logger.levelName, "INFO"); + assertEquals(logger.handlers, [fooHandler]); +}); + +test(async function getLoggerUnknown(): Promise<void> { + await log.setup({ + handlers: {}, + loggers: {} + }); + + const logger = log.getLogger("nonexistent"); + + assertEquals(logger.levelName, "NOTSET"); + assertEquals(logger.handlers, []); +}); |