# All files / infrastructure/logging logger.spec.ts

100% Statements 67/67
100% Branches 0/0
100% Functions 17/17
100% Lines 57/57

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    931x

    1x

    1x

    1x

    1x
    5x
    5x
    5x
    5x

    1x
    5x
    5x
    5x
    5x

    1x
    1x
    1x

    1x
    1x
    1x

    1x
    1x
    1x

    1x
    1x
    1x

    1x
    1x
    1x

    1x

    1x
    5x
    5x
    5x
    5x

    1x
    5x
    5x
    5x
    5x

    1x
    1x

    1x
    1x
    1x

    1x
    1x
    1x

    1x
    1x
    1x

    1x
    1x
    1x

    1x
    1x
    1x

     const sinon = require('sinon');

    import Logger from './logger';

    import * as log from 'loglevel';

    describe('Infrastructure - Log - Display informations', () => {
        let logStubDebug;
        let logStubInfo;
        let logStubWarn;
        let logStubError;

        beforeEach(() => {
            logStubDebug = sinon.stub(log, 'debug');
            logStubInfo = sinon.stub(log, 'info');
            logStubWarn = sinon.stub(log, 'warn');
            logStubError = sinon.stub(log, 'error');
        });

        afterEach(() => {
            logStubDebug.restore();
            logStubInfo.restore();
            logStubWarn.restore();
            logStubError.restore();
        });

        it('with log', async () => {
            Logger.log('log information');
            sinon.assert.calledOnce(log.debug);
        });
        it('with debug', async () => {
            Logger.debug('debug information');
            sinon.assert.calledOnce(log.debug);
        });
        it('with info', async () => {
            Logger.info('info information');
            sinon.assert.calledOnce(log.info);
        });
        it('with warn', async () => {
            Logger.warn('warn information');
            sinon.assert.calledOnce(log.warn);
        });
        it('with error', async () => {
            Logger.error('error information');
            sinon.assert.calledOnce(log.error);
        });
    });

    describe(`Infrastructure - Log - Doesn't display informations`, () => {
        let logStubDebug;
        let logStubInfo;
        let logStubWarn;
        let logStubError;

        beforeEach(() => {
            logStubDebug = sinon.stub(log, 'debug');
            logStubInfo = sinon.stub(log, 'info');
            logStubWarn = sinon.stub(log, 'warn');
            logStubError = sinon.stub(log, 'error');
        });

        afterEach(() => {
            logStubDebug.restore();
            logStubInfo.restore();
            logStubWarn.restore();
            logStubError.restore();
        });

        before(() => {
            Logger.silent = true;
        });
        it('with log', async () => {
            Logger.log('log information');
            sinon.assert.notCalled(log.debug);
        });
        it('with debug', async () => {
            Logger.debug('debug information');
            sinon.assert.notCalled(log.debug);
        });
        it('with info', async () => {
            Logger.info('info information');
            sinon.assert.notCalled(log.info);
        });
        it('with warn', async () => {
            Logger.warn('warn information');
            sinon.assert.notCalled(log.warn);
        });
        it('with error', async () => {
            Logger.error('error information');
            sinon.assert.notCalled(log.error);
        });
    });