diff --git a/test/fixtures/externals.js b/test/fixtures/externaltag.js similarity index 100% rename from test/fixtures/externals.js rename to test/fixtures/externaltag.js diff --git a/test/fixtures/externals2.js b/test/fixtures/externaltag2.js similarity index 100% rename from test/fixtures/externals2.js rename to test/fixtures/externaltag2.js diff --git a/test/fixtures/externals3.js b/test/fixtures/externaltag3.js similarity index 84% rename from test/fixtures/externals3.js rename to test/fixtures/externaltag3.js index 63353b28..4948c8eb 100644 --- a/test/fixtures/externals3.js +++ b/test/fixtures/externaltag3.js @@ -13,10 +13,10 @@ */ /** - * @external {foo.bar.baz} + * @external {"foo.bar.baz"} */ /** * Blah blah - * @function external:foo.bar.baz#blah + * @function external:"foo.bar.baz"#blah */ diff --git a/test/specs/tags/externaltag.js b/test/specs/tags/externaltag.js new file mode 100644 index 00000000..8b02dd86 --- /dev/null +++ b/test/specs/tags/externaltag.js @@ -0,0 +1,37 @@ +/*global describe, expect, it, jasmine, xit */ +'use strict'; + +describe('@external tag', function() { + var docSet = jasmine.getDocSetFromFile('test/fixtures/externaltag.js'); + var docSet2 = jasmine.getDocSetFromFile('test/fixtures/externaltag2.js'); + var docSet3 = jasmine.getDocSetFromFile('test/fixtures/externaltag3.js'); + + var fooBarBazExternal = docSet3.getByLongname('external:"foo.bar.baz"')[0]; + var jQueryExternal = docSet.getByLongname('external:"jQuery.fn"')[0]; + var stringExternal = docSet.getByLongname('external:String')[0]; + + + it('An @external should have its own doclet', function() { + expect(stringExternal).toBeDefined(); + expect(typeof stringExternal).toBe('object'); + }); + + it("An @external's name should be the same as its longname, minus 'external:'", function() { + expect(stringExternal.name).toBe('String'); + }); + + it('An @external should have its kind set to "external"', function() { + expect(stringExternal.kind).toBe('external'); + }); + + it('An @external with a quoted name should get the correct name', function() { + expect(jQueryExternal).toBeDefined(); + expect(jQueryExternal.name).toBe('"jQuery.fn"'); + }); + + // TODO: enable after jsdoc3/jsdoc#652 is fixed + xit('An @external should work correctly when the type is in curly braces', function() { + expect(fooBarBazExternal).toBeDefined(); + expect(fooBarBazExternal.name).toBe('"foo.bar.baz"'); + }); +});