UNPKG

serverless-offline-msk

Version:

A serverless offline plugin that enables AWS MSK events

107 lines (95 loc) 4 kB
'use strict'; const expect = require('chai').expect; const log = require('../log'); describe('log', () => { describe('`log` (Event messaging interface)', () => { it('should export methods that allow to write to different levels', () => { expect(typeof log.log.debug).to.equal('function'); expect(typeof log.log.info).to.equal('function'); expect(typeof log.log.notice).to.equal('function'); expect(typeof log.log.warn).to.equal('function'); expect(typeof log.log.error).to.equal('function'); }); it('should export methods that allow to create namespaced logger', () => { const nsLog = log.log.get('some-ns'); expect(typeof nsLog.debug).to.equal('function'); expect(typeof nsLog.info).to.equal('function'); expect(typeof nsLog.notice).to.equal('function'); expect(typeof nsLog.warn).to.equal('function'); expect(typeof nsLog.error).to.equal('function'); }); it('should export log decorators', () => { expect(typeof log.log.notice.success).to.equal('function'); expect(typeof log.log.notice.skip).to.equal('function'); const nsLog = log.log.get('some-ns'); expect(typeof nsLog.notice.success).to.equal('function'); expect(typeof nsLog.notice.skip).to.equal('function'); }); it('should export log aliases', () => { expect(typeof log.log.verbose).to.equal('function'); expect(typeof log.log.success).to.equal('function'); const nsLog = log.log.get('some-ns'); expect(typeof nsLog.verbose).to.equal('function'); expect(typeof nsLog.success).to.equal('function'); }); }); describe('`logLevelIndex` and side utils', () => { it('should export used log level', () => { expect(Number.isInteger(log.logLevelIndex)).to.be.true; }); it("should resolve if we're in verbose mode", () => { expect(typeof log.isVerboseMode).to.equal('boolean'); }); }); describe('`writeText`', () => { it('should export function', () => { expect(typeof log.writeText).to.equal('function'); expect(log.writeText.length).to.equal(1); }); }); describe('`progress`', () => { it('should expose progress interface', () => { expect(typeof log.progress.get('some-progress').info).to.equal('function'); }); it('should expose `clear` method', () => { expect(typeof log.progress.clear).to.equal('function'); }); }); describe('`getPluginWriters`', () => { let testWriters; before(() => { testWriters = log.getPluginWriters('test'); }); it('should expose event logging interface', () => { const testLog = testWriters.log; expect(typeof testLog.debug).to.equal('function'); expect(typeof testLog.info).to.equal('function'); expect(typeof testLog.notice).to.equal('function'); expect(typeof testLog.warn).to.equal('function'); expect(typeof testLog.error).to.equal('function'); expect(typeof testLog.get).to.equal('function'); }); it('should expose output writing interface', () => { expect(typeof testWriters.writeText).to.equal('function'); }); it('should expose progress writing interface', () => { expect(typeof testWriters.progress.get('some-progress').info).to.equal('function'); }); it('should create one set of writers for a plugin', () => { expect(testWriters).to.equal(log.getPluginWriters('test')); }); }); describe('`style`', () => { it('should expose styling functions', () => { const { style } = log; expect(style.aside('foo')).to.include('foo'); expect(style.error('foo')).to.include('foo'); expect(style.link('foo')).to.include('foo'); expect(style.linkStrong('foo')).to.include('foo'); expect(style.noticeSymbol('foo')).to.include('foo'); expect(style.strong('foo')).to.include('foo'); expect(style.title('foo')).to.include('foo'); expect(style.warning('foo')).to.include('foo'); }); }); });