UNPKG

dgeni

Version:

Flexible JavaScript documentation generator used by both AngularJS and Angular

115 lines (104 loc) 3.43 kB
const {expect, spy} = require('chai').use(require('chai-spies')); import {Dgeni} from '../Dgeni'; import {docDiffLoggerPackage} from './docDiffLogger'; describe('docDiffLogger', function() { let dgeni, mockLogger; beforeEach(function() { mockLogger = spy.interface('log', ['error', 'warning', 'info', 'debug', 'silly']); dgeni = new Dgeni(); dgeni.package('mockLogger') .factory(function log() { return mockLogger; }); dgeni.package('testProcessors', [docDiffLoggerPackage]) .processor('initial', function() { return { $process: function() {} }; }) .processor('first', function() { return { $runAfter: ['initial'], $process: function(docs) { docs.push({ id: 'doc-1' }); docs.push({ id: 'doc-2' }); } }; }) .processor('second', function() { return { $runAfter: ['first'], $process: function(docs) { docs[0].extra = 'stuff'; } }; }); }); it('should log the difference between the first and last processor', function() { return dgeni.generate() .then(function() { expect(mockLogger.info).to.have.been.called.with({ changed: 'object change', value : { 0 : { changed : 'added', value : { id : 'doc-1', extra : 'stuff' } }, 1: { changed : 'added', value : { id : 'doc-2' } } }}); }); }); it('should log the difference between the start and last processor', function() { dgeni.package('testConfig') .config(function(docDiffLoggerOptions) { docDiffLoggerOptions.start = 'first'; }); return dgeni.generate() .then(function() { expect(mockLogger.info).to.have.been.called.with({ changed: 'object change', value : { 0 : { changed : 'added', value : { id : 'doc-1', extra : 'stuff' } }, 1: { changed : 'added', value : { id : 'doc-2' } } } }); }); }); it('should log the difference between the first and end processor', function() { dgeni.package('testConfig') .config(function(docDiffLoggerOptions) { docDiffLoggerOptions.end = 'first'; }); return dgeni.generate() .then(function() { expect(mockLogger.info).to.have.been.called.with({ changed: 'object change', value : { 0 : { changed : 'added', value : { id : 'doc-1' } }, 1: { changed : 'added', value : { id : 'doc-2' } } } }); }); }); it('should log the difference between the start and end processor', function() { dgeni.package('testConfig') .config(function(docDiffLoggerOptions) { docDiffLoggerOptions.start = 'second'; docDiffLoggerOptions.end = 'second'; }); return dgeni.generate() .then(function() { expect(mockLogger.info).to.have.been.called.with({ changed: 'object change', value : { 0 : { changed : 'object change', value : { id : { changed: 'equal', value: 'doc-1' }, extra : { changed: 'added', value: 'stuff' } } }, 1: { changed : 'equal', value : { id : 'doc-2' } } } }); }); }); });