dgeni
Version:
Flexible JavaScript documentation generator used by both AngularJS and Angular
115 lines (104 loc) • 3.43 kB
text/typescript
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' }
}
}
});
});
});
});