angular-docs-cn/tools/api-builder/docs-package/processors/addNotYetDocumentedProperty...

145 lines
4.5 KiB
JavaScript

var mockPackage = require('../mocks/mockPackage');
var Dgeni = require('dgeni');
describe('addNotYetDocumentedProperty', function() {
var dgeni, injector, processor, log;
beforeEach(function() {
dgeni = new Dgeni([mockPackage()]);
injector = dgeni.configureInjector();
processor = injector.get('addNotYetDocumentedProperty');
log = injector.get('log');
});
it('should mark export docs with no description as "not yet documented"', function() {
var a, b, c, d, a1, b1, c1, d1;
var docs = [
a = { id: 'a', docType: 'interface', description: 'some content' },
b = { id: 'b', docType: 'class', description: 'some content' },
c = { id: 'c', docType: 'var', description: 'some content' },
d = { id: 'd', docType: 'function', description: 'some content' },
a1 = { id: 'a1', docType: 'interface', description: '' },
b1 = { id: 'b1', docType: 'class', description: '' },
c1 = { id: 'c1', docType: 'var', description: '' },
d1 = { id: 'd1', docType: 'function', description: '' }
];
processor.$process(docs);
expect(a.notYetDocumented).toBeFalsy();
expect(b.notYetDocumented).toBeFalsy();
expect(c.notYetDocumented).toBeFalsy();
expect(d.notYetDocumented).toBeFalsy();
expect(a1.notYetDocumented).toBeTruthy();
expect(b1.notYetDocumented).toBeTruthy();
expect(c1.notYetDocumented).toBeTruthy();
expect(d1.notYetDocumented).toBeTruthy();
});
it('should mark member docs with no description as "not yet documented"', function() {
var a, a1, a2, b, b1, b2, c, c1, c2;
var docs = [
a = {
id: 'a', docType: 'interface', description: 'some content',
members: [
a1 = { id: 'a1', description: 'some content' },
a2 = { id: 'a2', description: '' }
]
},
b = {
id: 'b', docType: 'class', description: '',
members: [
b1 = { id: 'b1', description: 'some content' },
b2 = { id: 'b2', description: '' }
]
},
c = {
id: 'c', docType: 'class', description: '',
members: [
c1 = { id: 'c1', description: '' },
c2 = { id: 'c2', description: '' }
]
},
];
processor.$process(docs);
expect(a.notYetDocumented).toBeFalsy();
expect(b.notYetDocumented).toBeFalsy();
expect(c.notYetDocumented).toBeTruthy();
expect(a1.notYetDocumented).toBeFalsy();
expect(a2.notYetDocumented).toBeTruthy();
expect(b1.notYetDocumented).toBeFalsy();
expect(b2.notYetDocumented).toBeTruthy();
expect(c1.notYetDocumented).toBeTruthy();
expect(c2.notYetDocumented).toBeTruthy();
});
it('should mark constructor doc with no description as "not yet documented"', function() {
var a, a1, b, b1;
var docs = [
a = {
id: 'a', docType: 'interface', description: '',
constructorDoc:
a1 = { id: 'a1', description: 'some content' }
},
b = {
id: 'b', docType: 'interface', description: '',
constructorDoc:
b1 = { id: 'b1', description: '' }
}
];
processor.$process(docs);
expect(a.notYetDocumented).toBeFalsy();
expect(b.notYetDocumented).toBeTruthy();
expect(a1.notYetDocumented).toBeFalsy();
expect(b1.notYetDocumented).toBeTruthy();
});
it('should not mark documents explicity tagged as `@noDescription`', function() {
var a, a1, a2, b, b1, b2, c, c1, c2;
var docs = [
a = {
id: 'a', docType: 'interface', description: 'some content',
members: [
a1 = { id: 'a1', description: 'some content' },
a2 = { id: 'a2', description: '', noDescription: true }
]
},
b = {
id: 'b', docType: 'class', description: '',
members: [
b1 = { id: 'b1', description: 'some content' },
b2 = { id: 'b2', description: '', noDescription: true }
]
},
c = {
id: 'c', docType: 'class', description: '', noDescription: true,
members: [
c1 = { id: 'c1', description: '' },
c2 = { id: 'c2', description: '' }
]
},
];
processor.$process(docs);
expect(a.notYetDocumented).toBeFalsy();
expect(b.notYetDocumented).toBeFalsy();
expect(c.notYetDocumented).toBeFalsy();
expect(a1.notYetDocumented).toBeFalsy();
expect(a2.notYetDocumented).toBeFalsy();
expect(b1.notYetDocumented).toBeFalsy();
expect(b2.notYetDocumented).toBeFalsy();
expect(c1.notYetDocumented).toBeTruthy();
expect(c2.notYetDocumented).toBeTruthy();
});
});