| /*--------------------------------------------------------- |
| * Copyright 2021 The Go Authors. All rights reserved. |
| * Licensed under the MIT License. See LICENSE in the project root for license information. |
| *--------------------------------------------------------*/ |
| |
| import assert from 'assert'; |
| import sinon = require('sinon'); |
| import { Logger } from '../../src/goLogging'; |
| |
| suite('Logger Tests', () => { |
| let sandbox: sinon.SinonSandbox; |
| |
| setup(() => { |
| sandbox = sinon.createSandbox(); |
| }); |
| teardown(() => { |
| sandbox.restore(); |
| }); |
| |
| // eslint-disable-next-line @typescript-eslint/no-explicit-any |
| function runTest(level: any, want: number) { |
| const appendLine = sandbox.fake(); |
| const logger = new Logger(level, { appendLine }); |
| logger.error('error'); |
| logger.warn('warn'); |
| logger.info('info'); |
| logger.debug('debug'); |
| logger.trace('trace'); |
| assert.strictEqual(appendLine.callCount, want, `called ${appendLine.callCount} times, want ${want}`); |
| } |
| test('logger level = off', () => runTest('off', 0)); |
| test('logger level = error', () => runTest('error', 1)); |
| test('logger level = warning', () => runTest('warn', 2)); |
| test('logger level = info', () => runTest('info', 3)); |
| test('logger level = trace', () => runTest('trace', 4)); |
| test('logger level = verbose', () => runTest('verbose', 5)); |
| test('logger level = undefined', () => runTest(undefined, 1)); |
| test('logger level = ""', () => runTest('', 1)); |
| test('logger level = object', () => runTest({}, 1)); |
| test('logger level = number', () => runTest(10, 1)); |
| }); |