diff --git a/lib/jsdoc/tag/dictionary/definitions.js b/lib/jsdoc/tag/dictionary/definitions.js index 9f15941f..8324c21f 100644 --- a/lib/jsdoc/tag/dictionary/definitions.js +++ b/lib/jsdoc/tag/dictionary/definitions.js @@ -415,7 +415,7 @@ var baseTags = exports.baseTags = { enum: { canHaveType: true, onTagged: function(doclet, tag) { - doclet.kind = 'member'; + doclet.kind = doclet.kind || 'member'; doclet.isEnum = true; setDocletTypeToValueType(doclet, tag); } diff --git a/test/fixtures/enumtag3.js b/test/fixtures/enumtag3.js new file mode 100644 index 00000000..f8de11f1 --- /dev/null +++ b/test/fixtures/enumtag3.js @@ -0,0 +1,11 @@ +define(function () { + /** + * @exports mymodule + * @enum {string} + */ + var exports = { + A: 'abc' + }; + + return exports; +}); diff --git a/test/specs/tags/enumtag.js b/test/specs/tags/enumtag.js index 6d58ee3c..49aa2887 100644 --- a/test/specs/tags/enumtag.js +++ b/test/specs/tags/enumtag.js @@ -59,4 +59,13 @@ describe('@enum tag', function() { expect(pentaState.properties.length).toBe(5); }); }); + + describe('combined with @exports tag', function() { + var docSet3 = jasmine.getDocSetFromFile('test/fixtures/enumtag3.js'); + var mymodule = docSet3.getByLongname('module:mymodule')[0]; + + it('When a symbol has both an @exports tag and an @enum tag, its kind is set to `module`', function() { + expect(mymodule.kind).toBe('module'); + }); + }); });