summaryrefslogtreecommitdiff
path: root/std/log/logger_test.ts
diff options
context:
space:
mode:
authorCasper Beyer <caspervonb@pm.me>2021-02-02 19:05:46 +0800
committerGitHub <noreply@github.com>2021-02-02 12:05:46 +0100
commit6abf126c2a7a451cded8c6b5e6ddf1b69c84055d (patch)
treefd94c013a19fcb38954844085821ec1601c20e18 /std/log/logger_test.ts
parenta2b5d44f1aa9d64f448a2a3cc2001272e2f60b98 (diff)
chore: remove std directory (#9361)
This removes the std folder from the tree. Various parts of the tests are pretty tightly dependent on std (47 direct imports and 75 indirect imports, not counting the cli tests that use them as fixtures) so I've added std as a submodule for now.
Diffstat (limited to 'std/log/logger_test.ts')
-rw-r--r--std/log/logger_test.ts255
1 files changed, 0 insertions, 255 deletions
diff --git a/std/log/logger_test.ts b/std/log/logger_test.ts
deleted file mode 100644
index bfaa653c9..000000000
--- a/std/log/logger_test.ts
+++ /dev/null
@@ -1,255 +0,0 @@
-// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
-import { assert, assertEquals, assertMatch } from "../testing/asserts.ts";
-import { Logger, LogRecord } from "./logger.ts";
-import { LevelName, LogLevels } 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);
- }
-}
-
-Deno.test({
- name: "Logger names can be output in logs",
- fn() {
- const handlerNoName = new TestHandler("DEBUG");
- const handlerWithLoggerName = new TestHandler("DEBUG", {
- formatter: "[{loggerName}] {levelName} {msg}",
- });
-
- const logger = new Logger("config", "DEBUG", {
- handlers: [handlerNoName, handlerWithLoggerName],
- });
- logger.debug("hello");
- assertEquals(handlerNoName.messages[0], "DEBUG hello");
- assertEquals(handlerWithLoggerName.messages[0], "[config] DEBUG hello");
- },
-});
-
-Deno.test("simpleLogger", function (): void {
- const handler = new TestHandler("DEBUG");
- let logger = new Logger("default", "DEBUG");
-
- assertEquals(logger.level, LogLevels.DEBUG);
- assertEquals(logger.levelName, "DEBUG");
- assertEquals(logger.handlers, []);
-
- logger = new Logger("default", "DEBUG", { handlers: [handler] });
-
- assertEquals(logger.handlers, [handler]);
-});
-
-Deno.test("customHandler", function (): void {
- const handler = new TestHandler("DEBUG");
- const logger = new Logger("default", "DEBUG", { handlers: [handler] });
-
- const inlineData: string = logger.debug("foo", 1, 2);
-
- const record = handler.records[0];
- assertEquals(record.msg, "foo");
- assertEquals(record.args, [1, 2]);
- assertEquals(record.level, LogLevels.DEBUG);
- assertEquals(record.levelName, "DEBUG");
-
- assertEquals(handler.messages, ["DEBUG foo"]);
- assertEquals(inlineData!, "foo");
-});
-
-Deno.test("logFunctions", function (): void {
- const doLog = (level: LevelName): TestHandler => {
- const handler = new TestHandler(level);
- const logger = new Logger("default", level, { handlers: [handler] });
- const debugData = logger.debug("foo");
- const infoData = logger.info("bar");
- const warningData = logger.warning("baz");
- const errorData = logger.error("boo");
- const criticalData = logger.critical("doo");
- assertEquals(debugData, "foo");
- assertEquals(infoData, "bar");
- assertEquals(warningData, "baz");
- assertEquals(errorData, "boo");
- assertEquals(criticalData, "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"]);
-});
-
-Deno.test(
- "String resolver fn will not execute if msg will not be logged",
- function (): void {
- const handler = new TestHandler("ERROR");
- const logger = new Logger("default", "ERROR", { handlers: [handler] });
- let called = false;
-
- const expensiveFunction = (): string => {
- called = true;
- return "expensive function result";
- };
-
- const inlineData: string | undefined = logger.debug(
- expensiveFunction,
- 1,
- 2,
- );
- assert(!called);
- assertEquals(inlineData, undefined);
- },
-);
-
-Deno.test("String resolver fn resolves as expected", function (): void {
- const handler = new TestHandler("ERROR");
- const logger = new Logger("default", "ERROR", { handlers: [handler] });
- const expensiveFunction = (x: number): string => {
- return "expensive function result " + x;
- };
-
- const firstInlineData = logger.error(() => expensiveFunction(5));
- const secondInlineData = logger.error(() => expensiveFunction(12), 1, "abc");
- assertEquals(firstInlineData, "expensive function result 5");
- assertEquals(secondInlineData, "expensive function result 12");
-});
-
-Deno.test(
- "All types map correctly to log strings and are returned as is",
- function (): void {
- const handler = new TestHandler("DEBUG");
- const logger = new Logger("default", "DEBUG", { handlers: [handler] });
- const sym = Symbol();
- const syma = Symbol("a");
- const fn = (): string => {
- return "abc";
- };
-
- // string
- const data1: string = logger.debug("abc");
- assertEquals(data1, "abc");
- const data2: string = logger.debug("def", 1);
- assertEquals(data2, "def");
- assertEquals(handler.messages[0], "DEBUG abc");
- assertEquals(handler.messages[1], "DEBUG def");
-
- // null
- const data3: null = logger.info(null);
- assertEquals(data3, null);
- const data4: null = logger.info(null, 1);
- assertEquals(data4, null);
- assertEquals(handler.messages[2], "INFO null");
- assertEquals(handler.messages[3], "INFO null");
-
- // number
- const data5: number = logger.warning(3);
- assertEquals(data5, 3);
- const data6: number = logger.warning(3, 1);
- assertEquals(data6, 3);
- assertEquals(handler.messages[4], "WARNING 3");
- assertEquals(handler.messages[5], "WARNING 3");
-
- // bigint
- const data7: bigint = logger.error(5n);
- assertEquals(data7, 5n);
- const data8: bigint = logger.error(5n, 1);
- assertEquals(data8, 5n);
- assertEquals(handler.messages[6], "ERROR 5");
- assertEquals(handler.messages[7], "ERROR 5");
-
- // boolean
- const data9: boolean = logger.critical(true);
- assertEquals(data9, true);
- const data10: boolean = logger.critical(false, 1);
- assertEquals(data10, false);
- assertEquals(handler.messages[8], "CRITICAL true");
- assertEquals(handler.messages[9], "CRITICAL false");
-
- // undefined
- const data11: undefined = logger.debug(undefined);
- assertEquals(data11, undefined);
- const data12: undefined = logger.debug(undefined, 1);
- assertEquals(data12, undefined);
- assertEquals(handler.messages[10], "DEBUG undefined");
- assertEquals(handler.messages[11], "DEBUG undefined");
-
- // symbol
- const data13: symbol = logger.info(sym);
- assertEquals(data13, sym);
- const data14: symbol = logger.info(syma, 1);
- assertEquals(data14, syma);
- assertEquals(handler.messages[12], "INFO Symbol()");
- assertEquals(handler.messages[13], "INFO Symbol(a)");
-
- // function
- const data15: string | undefined = logger.warning(fn);
- assertEquals(data15, "abc");
- const data16: string | undefined = logger.warning(fn, 1);
- assertEquals(data16, "abc");
- assertEquals(handler.messages[14], "WARNING abc");
- assertEquals(handler.messages[15], "WARNING abc");
-
- // object
- const data17: { payload: string; other: number } = logger.error({
- payload: "data",
- other: 123,
- });
- assertEquals(data17, {
- payload: "data",
- other: 123,
- });
- const data18: { payload: string; other: number } = logger.error(
- { payload: "data", other: 123 },
- 1,
- );
- assertEquals(data18, {
- payload: "data",
- other: 123,
- });
- assertEquals(handler.messages[16], 'ERROR {"payload":"data","other":123}');
- assertEquals(handler.messages[17], 'ERROR {"payload":"data","other":123}');
-
- // error
- const error = new RangeError("Uh-oh!");
- const data19: RangeError = logger.error(error);
- assertEquals(data19, error);
- const messages19 = handler.messages[18].split("\n");
- assertEquals(messages19[0], `ERROR ${error.name}: ${error.message}`);
- assertMatch(messages19[1], /^\s+at file:.*\d+:\d+$/);
- },
-);