chore(doc-gen): add some tests for typescript-definition-package

This commit is contained in:
Peter Bacon Darwin 2015-07-12 19:10:58 +01:00
parent 09bb114a4d
commit 4d80ce5b4a
4 changed files with 76 additions and 15 deletions

View File

@ -29,7 +29,7 @@ module.exports = new Package('angular-v2-docs', [jsdocPackage, nunjucksPackage,
renderDocsProcessor.extraData.versionInfo = versionInfo; renderDocsProcessor.extraData.versionInfo = versionInfo;
}) })
.config(function(readFilesProcessor, inlineTagProcessor, readTypeScriptModules) { .config(function(readFilesProcessor, inlineTagProcessor, readTypeScriptModules, createTypeDefinitionFile) {
// Don't run unwanted processors // Don't run unwanted processors
readFilesProcessor.$enabled = false; // We are not using the normal file reading processor readFilesProcessor.$enabled = false; // We are not using the normal file reading processor
@ -42,6 +42,21 @@ module.exports = new Package('angular-v2-docs', [jsdocPackage, nunjucksPackage,
'angular2/router.ts' 'angular2/router.ts'
]; ];
readTypeScriptModules.basePath = path.resolve(path.resolve(__dirname, '../../modules')); readTypeScriptModules.basePath = path.resolve(path.resolve(__dirname, '../../modules'));
createTypeDefinitionFile.typeDefinitions = [
{
id: 'angular2/angular2',
modules: {
'angular2/angular2': 'angular2/angular2',
}
},
{
id: 'angular2/router',
modules: {
'angular2/router': 'angular2/router'
}
}
];
}) })

View File

@ -0,0 +1,11 @@
var Package = require('dgeni').Package;
module.exports = function mockPackage() {
return new Package('mockPackage', [require('../')])
// provide a mock log service
.factory('log', function() { return require('dgeni/lib/mocks/log')(false); })
// .factory('templateEngine', function() { return {}; });
};

View File

@ -13,20 +13,7 @@ module.exports = function createTypeDefinitionFile(log) {
}, },
dtsPath: 'typings', dtsPath: 'typings',
dtsExtension: '.d.ts', dtsExtension: '.d.ts',
typeDefinitions: [ typeDefinitions: [],
{
id: 'angular2/angular2',
modules: {
'angular2/angular2': 'angular2/angular2',
}
},
{
id: 'angular2/router',
modules: {
'angular2/router': 'angular2/router'
}
}
],
$process: function(docs) { $process: function(docs) {
var dtsPath = this.dtsPath; var dtsPath = this.dtsPath;
var dtsExtension = this.dtsExtension; var dtsExtension = this.dtsExtension;

View File

@ -0,0 +1,48 @@
var mockPackage = require('../mocks/mockPackage');
var Dgeni = require('dgeni');
var path = require('canonical-path');
var _ = require('lodash');
describe('createTypeDefinitionFile processor', function() {
var dgeni, injector, processor;
beforeEach(function() {
dgeni = new Dgeni([mockPackage()]);
injector = dgeni.configureInjector();
processor = injector.get('createTypeDefinitionFile');
// Initialize the processor
processor.typeDefinitions = [{
id: 'angular2/angular2',
modules: { 'angular2/angular2': 'angular2/angular2' }
}];
});
describe('classes with private constructors', function() {
it('should convert heritage from `implements` into `extends`', function() {
// Create some mock docs for testing
var docs = [
{
id: 'angular2/angular2',
exports: [
{ docType: 'class', heritage: 'implements Xyz', constructorDoc: { private: true } }
]
}
];
docs = processor.$process(docs);
expect(docs.length).toEqual(1);
expect(docs[0].docType).toEqual('type-definition');
var moduleDoc = docs[0].moduleDocs['angular2/angular2'].doc;
expect(moduleDoc.exports.length).toEqual(2);
expect(moduleDoc.exports[0].heritage).toEqual('extends Xyz');
});
});
});