yadop
Version:
Yet another Doc Parser
78 lines • 3.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var fs = require("fs-extra");
var glob = require("glob");
var sinon = require("sinon");
var espree = require("espree");
var doctrine = require("doctrine");
var processor_1 = require("./processor");
(function () {
describe('ngdoc processor', function () {
var globSyncFn;
var fsReadFileSyncFn;
var espreeParseFn;
var doctrineParseFn;
var configuration;
var processor;
var result;
var code = 'code';
beforeEach(function () {
globSyncFn = sinon.stub(glob, 'sync').callsFake(function () { return [
'one', 'two', 'three'
]; });
fsReadFileSyncFn = sinon.stub(fs, 'readFileSync').callsFake(function (file) { return file + '-content'; });
espreeParseFn = sinon.stub(espree, 'parse');
espreeParseFn.onCall(0).returns({ comments: [{ value: 'one' }] });
espreeParseFn.onCall(1).returns({ comments: [{ value: 'two' }, { value: 'another two' }] });
espreeParseFn.onCall(2).returns({ comments: [{ value: 'three' }] });
doctrineParseFn = sinon.stub(doctrine, 'parse');
doctrineParseFn.onCall(0).returns({
description: 'one-doctrine',
tags: [{ title: 'param', 'description': 'some param' }]
});
doctrineParseFn.onCall(1).returns({
description: 'two-doctrine',
tags: [{ title: 'param', 'description': 'some param' }]
});
doctrineParseFn.onCall(2).returns({
description: 'another two-doctrine',
tags: [{ title: 'ngdoc', 'description': 'some param' }]
});
doctrineParseFn.onCall(3).returns({
description: 'three-doctrine',
tags: [{ title: 'ngdoc', 'description': 'some param' }]
});
});
describe('process', function () {
beforeEach(function () {
configuration = {};
processor = new processor_1.default(configuration);
result = processor.process();
});
it('returns the only the ngdoc doctrine.Annotations', function () {
expect(result.length).toBe(2);
expect(result[0]).toEqual({
description: 'another two-doctrine',
tags: [{ title: 'ngdoc', 'description': 'some param' }]
});
expect(result[1]).toEqual({
description: 'three-doctrine',
tags: [{ title: 'ngdoc', 'description': 'some param' }]
});
});
afterEach(function () {
globSyncFn.reset();
fsReadFileSyncFn.reset();
espreeParseFn.reset();
doctrineParseFn.reset();
});
});
afterEach(function () {
globSyncFn.restore();
fsReadFileSyncFn.restore();
espreeParseFn.restore();
doctrineParseFn.restore();
});
});
})();
//# sourceMappingURL=processor.spec.js.map