Pete Bacon Darwin e7b392bf3a build(aio): improve automatic linking of code items (#24000)
This commit adds new link disambiguators that mean that more
code links can be generated automatically in a sensible way.

The best example is the use of properties within class, interface and
enum documentation.

PR Close #24000
2018-06-13 16:47:40 -07:00

34 lines
1.2 KiB
JavaScript

const disambiguateByContainer = require('./disambiguateByContainer')();
const containerA = { name: 'a' };
const containerB = { name: 'b' };
const docs = [
{ id: 'doc1', containerDoc: containerA },
{ id: 'doc2', containerDoc: containerA },
{ id: 'doc3', containerDoc: containerB },
];
describe('disambiguateByContainer', () => {
it('should return all docs if the originating doc has no containerDoc', () => {
expect(disambiguateByContainer('alias', { }, docs)).toEqual(docs);
});
it('should return all docs if no docs match the originating doc containerDoc', () => {
expect(disambiguateByContainer('alias', { containerDoc: { name: 'c' } }, docs)).toEqual(docs);
});
it('should return only docs that are contained by the originating doc or its containers', () => {
expect(disambiguateByContainer('alias', containerB, docs)).toEqual([
{ id: 'doc3', containerDoc: containerB },
]);
expect(disambiguateByContainer('alias', { containerDoc: containerA }, docs)).toEqual([
{ id: 'doc1', containerDoc: containerA },
{ id: 'doc2', containerDoc: containerA },
]);
expect(disambiguateByContainer('alias', { containerDoc: containerB }, docs)).toEqual([
{ id: 'doc3', containerDoc: containerB },
]);
});
});