diff --git a/lib/jsdoc/augment.js b/lib/jsdoc/augment.js index 367bb8a6..7d89e0d3 100644 --- a/lib/jsdoc/augment.js +++ b/lib/jsdoc/augment.js @@ -181,7 +181,7 @@ exports.addImplemented = function(docs) { }); }); - for (var key in implemented) { + for (var key in implemented) { if (implemented.hasOwnProperty(key)) { // implemented classes namespace. var owner = implemented[key]; @@ -204,6 +204,6 @@ exports.addImplemented = function(docs) { }); - } + }} }; diff --git a/lib/jsdoc/schema.js b/lib/jsdoc/schema.js index 669ea252..bd41b621 100644 --- a/lib/jsdoc/schema.js +++ b/lib/jsdoc/schema.js @@ -374,7 +374,8 @@ var DOCLET_SCHEMA = exports.DOCLET_SCHEMA = { 'namespace', 'package', 'param', - 'typedef' + 'typedef', + 'interface' ] }, license: { diff --git a/test/fixtures/interface-implements.js b/test/fixtures/interface-implements.js new file mode 100644 index 00000000..e3ac9f71 --- /dev/null +++ b/test/fixtures/interface-implements.js @@ -0,0 +1,12 @@ +/** @interface */ +function ITester() {} +ITester.prototype.beforeEach = function() {}; +ITester.prototype.it = function() {}; + +/** + * @constructor + * @implements {ITester} + */ +function MyTester() {} +MyTester.prototype.beforeEach = function() {}; +MyTester.prototype.it = function() {}; diff --git a/test/specs/tags/implementstag.js b/test/specs/tags/implementstag.js new file mode 100644 index 00000000..3a5681b9 --- /dev/null +++ b/test/specs/tags/implementstag.js @@ -0,0 +1,18 @@ +xdescribe('interface-implements suite', function() { + var docSet = jasmine.getDocSetFromFile("test/fixtures/interface-implements.js"); + + var foundMyTester = docSet.getByLongname('MyTester'); + var foundBeforeEachMethod = docSet.getByLongname('MyTester#beforeEach'); + + it('MyTester has "implements" array property', function() { + expect(Array.isArray(foundMyTester[0].implements)).toBeTruthy(); + }); + + it('beforeEach has "implemented" and "implements" property', function() { + expect(foundBeforeEachMethod[0].implemented).toBeDefined(); + expect(foundBeforeEachMethod[0].implemented).toBeTruthy(); + expect(foundBeforeEachMethod[0].implements).toBeDefined(); + expect(Array.isArray(foundMyTester[0].implements)).toBeTruthy(); + }); + +}); \ No newline at end of file diff --git a/test/specs/tags/interfacetag.js b/test/specs/tags/interfacetag.js new file mode 100644 index 00000000..2366b74f --- /dev/null +++ b/test/specs/tags/interfacetag.js @@ -0,0 +1,10 @@ +describe('@interface tag', function() { + var docSet = jasmine.getDocSetFromFile("test/fixtures/interface-implements.js"); + + var foundInterface = docSet.getByLongname('ITester'); + + it('ITester has "interface" value in "kind"', function() { + expect(foundInterface[0].kind).toEqual('interface'); + }); + +}); \ No newline at end of file