feat(aio): first pass API docs redesign (#21874)
Includes: * display ToC for API docs * update dgeni-packages to 0.24.1 * add floating sidebar in API docs * add breadcrumbs and structured data for Google crawler * improved rendering of method overloads * properties rendered in a table * params rendered with docs * removal of outdated "infobox" from all API docs PR Close #21874
This commit is contained in:

committed by
Miško Hevery

parent
bc1e22922a
commit
7007f51c35
@ -0,0 +1,81 @@
|
||||
const testPackage = require('../../helpers/test-package');
|
||||
const processorFactory = require('./processClassLikeMembers');
|
||||
const Dgeni = require('dgeni');
|
||||
|
||||
const property1 = { description: 'property 1' };
|
||||
const property2 = { description: 'property 2' };
|
||||
const getter1 = { parameters: [], isGetAccessor: true, description: 'getter 1' };
|
||||
const setter1 = { parameters: [], isSetAccessor: true, description: 'setter 1' };
|
||||
const method1 = { parameters: [] };
|
||||
const method2 = { parameters: [] };
|
||||
const method3 = { parameters: [] };
|
||||
|
||||
describe('angular-api-packge: processClassLikeMembers processor', () => {
|
||||
|
||||
it('should be available on the injector', () => {
|
||||
const dgeni = new Dgeni([testPackage('angular-api-package')]);
|
||||
const injector = dgeni.configureInjector();
|
||||
const processor = injector.get('processClassLikeMembers');
|
||||
expect(processor.$process).toBeDefined();
|
||||
expect(processor.$runAfter).toEqual(['filterContainedDocs']);
|
||||
expect(processor.$runBefore).toEqual(['rendering-docs']);
|
||||
});
|
||||
|
||||
it('should copy instance members into properties and methods', () => {
|
||||
const processor = processorFactory();
|
||||
const docs = [
|
||||
{ members: [ property1, method1, getter1] },
|
||||
{ members: [ method2, property2, method3, setter1] },
|
||||
{ }
|
||||
];
|
||||
processor.$process(docs);
|
||||
|
||||
expect(docs[0].properties).toEqual([property1, getter1]);
|
||||
expect(docs[0].methods).toEqual([method1]);
|
||||
|
||||
expect(docs[1].properties).toEqual([property2, setter1]);
|
||||
expect(docs[1].methods).toEqual([method2, method3]);
|
||||
|
||||
expect(docs[2].properties).toBeUndefined();
|
||||
expect(docs[2].methods).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should copy static members into properties and methods', () => {
|
||||
const processor = processorFactory();
|
||||
const docs = [
|
||||
{ statics: [ property1, method1, getter1] },
|
||||
{ statics: [ method2, property2, method3, setter1] },
|
||||
{ }
|
||||
];
|
||||
processor.$process(docs);
|
||||
|
||||
expect(docs[0].staticProperties).toEqual([property1, getter1]);
|
||||
expect(docs[0].staticMethods).toEqual([method1]);
|
||||
|
||||
expect(docs[1].staticProperties).toEqual([property2, setter1]);
|
||||
expect(docs[1].staticMethods).toEqual([method2, method3]);
|
||||
|
||||
expect(docs[2].staticProperties).toBeUndefined();
|
||||
expect(docs[2].staticMethods).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should wire up properties that are declared as parameters on the constructor to its associated parameter doc', () => {
|
||||
const processor = processorFactory();
|
||||
const propertyDeclaration = {};
|
||||
const parameterDoc1 = { declaration: {} };
|
||||
const parameterDoc2 = { declaration: propertyDeclaration };
|
||||
const parameterDoc3 = { declaration: {} };
|
||||
const property = {
|
||||
declaration: propertyDeclaration,
|
||||
containerDoc: {
|
||||
constructorDoc: {
|
||||
parameterDocs: [ parameterDoc1, parameterDoc2, parameterDoc3 ]
|
||||
}
|
||||
}
|
||||
};
|
||||
const docs = [{ members: [ property] }];
|
||||
processor.$process(docs);
|
||||
|
||||
expect(property.constructorParamDoc).toEqual(parameterDoc2);
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user