diff --git a/lib/jsdoc/augment.js b/lib/jsdoc/augment.js index 98851faf..08307ea6 100644 --- a/lib/jsdoc/augment.js +++ b/lib/jsdoc/augment.js @@ -14,7 +14,7 @@ function mapDependencies(index, propertyName) { var dependencies = {}; var doc; var doclets; - var kinds = ['class', 'external', 'mixin']; + var kinds = ['class', 'external', 'interface', 'mixin']; var len = 0; Object.keys(index).forEach(function(indexName) { @@ -175,7 +175,7 @@ function getInheritedAdditions(doclets, docs, documented) { doc = doclets[i]; parents = doc.augments; - if (parents && doc.kind === 'class') { + if ( parents && (doc.kind === 'class' || doc.kind === 'interface') ) { // reset the lookup table of added doclet indexes by longname additionIndexes = {}; diff --git a/test/specs/tags/augmentstag.js b/test/specs/tags/augmentstag.js index 295d4f5c..19be3101 100644 --- a/test/specs/tags/augmentstag.js +++ b/test/specs/tags/augmentstag.js @@ -6,6 +6,7 @@ var docSet3 = jasmine.getDocSetFromFile('test/fixtures/augmentstag3.js'); var docSet4 = jasmine.getDocSetFromFile('test/fixtures/augmentstag4.js'); var docSet5 = jasmine.getDocSetFromFile('test/fixtures/augmentstag5.js'); + var docSet6 = jasmine.getDocSetFromFile('test/fixtures/augmentstag6.js'); it('When a symbol has an @augments tag, the doclet has a augments property that includes that value.', function() { var bar = docSet.getByLongname('Bar')[0]; @@ -163,4 +164,12 @@ expect(classCommonMethod.length).toBe(1); expect(classCommonMethod[0].description).toBe(base1CommonMethod.description); }); + + it('Interfaces can augment other interfaces', function() { + var connectionOpen = docSet6.getByLongname('IConnection#open')[0]; + var closableConnectionOpen = docSet6.getByLongname('IClosableConnection#open')[0]; + + expect(closableConnectionOpen).toBeDefined(); + expect(closableConnectionOpen.description).toBe(connectionOpen.description); + }); });