mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
Merge pull request #280 from mathematicalcoffee/bugfix-nested-event-longnames
Nested events don't have longname set properly if order of tags is wrong.
This commit is contained in:
commit
eb4f65eae4
@ -282,7 +282,6 @@ exports.defineTags = function(dictionary) {
|
|||||||
onTagged: function(doclet, tag) {
|
onTagged: function(doclet, tag) {
|
||||||
setDocletKindToTitle(doclet, tag);
|
setDocletKindToTitle(doclet, tag);
|
||||||
setDocletNameToValue(doclet, tag);
|
setDocletNameToValue(doclet, tag);
|
||||||
applyNamespace(doclet, tag);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
describe("jsdoc/name", function() {
|
describe("jsdoc/name", function() {
|
||||||
var jsdoc = {name: require('jsdoc/name') };
|
var jsdoc = {name: require('jsdoc/name'), doclet: require('jsdoc/doclet') };
|
||||||
|
|
||||||
it("should exist", function() {
|
it("should exist", function() {
|
||||||
expect(jsdoc.name).toBeDefined();
|
expect(jsdoc.name).toBeDefined();
|
||||||
@ -154,4 +154,111 @@ describe("jsdoc/name", function() {
|
|||||||
expect(parts.description, 'This is a description.');
|
expect(parts.description, 'This is a description.');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
describe("resolve", function() {
|
||||||
|
// TODO: further tests (namespaces, modules, ...)
|
||||||
|
|
||||||
|
// @event testing.
|
||||||
|
var event = '@event';
|
||||||
|
var memberOf = '@memberof MyClass';
|
||||||
|
var name = '@name A';
|
||||||
|
function makeDoclet(bits) {
|
||||||
|
var comment = '/**\n' + bits.join('\n') + '\n*/';
|
||||||
|
return new jsdoc.doclet.Doclet(comment, {});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test the basic @event that is not nested.
|
||||||
|
it('unnested @event gets resolved correctly', function() {
|
||||||
|
var doclet = makeDoclet([event, name]),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toBeUndefined();
|
||||||
|
expect(doclet.longname).toEqual('event:A');
|
||||||
|
});
|
||||||
|
|
||||||
|
// test all permutations of @event @name [name] @memberof.
|
||||||
|
it('@event @name @memberof resolves correctly', function() {
|
||||||
|
var doclet = makeDoclet([event, name, memberOf]),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toEqual('MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyClass.event:A');
|
||||||
|
});
|
||||||
|
it('@event @memberof @name resolves correctly', function() {
|
||||||
|
var doclet = makeDoclet([event, memberOf, name]),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toEqual('MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyClass.event:A');
|
||||||
|
});
|
||||||
|
it('@name @event @memberof resolves correctly', function() {
|
||||||
|
var doclet = makeDoclet([name, event, memberOf]),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toEqual('MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyClass.event:A');
|
||||||
|
});
|
||||||
|
it('@name @memberof @event resolves correctly', function() {
|
||||||
|
var doclet = makeDoclet([name, memberOf, event]),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toEqual('MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyClass.event:A');
|
||||||
|
});
|
||||||
|
it('@memberof @event @name resolves correctly', function() {
|
||||||
|
var doclet = makeDoclet([memberOf, event, name]),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toEqual('MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyClass.event:A');
|
||||||
|
});
|
||||||
|
it('@memberof @name @event resolves correctly', function() {
|
||||||
|
var doclet = makeDoclet([memberOf, name, event]),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toEqual('MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyClass.event:A');
|
||||||
|
});
|
||||||
|
|
||||||
|
// test all permutations of @event [name] @memberof
|
||||||
|
it('@event [name] @memberof resolves correctly', function() {
|
||||||
|
var doclet = makeDoclet(['@event A', memberOf]),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toEqual('MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyClass.event:A');
|
||||||
|
});
|
||||||
|
it('@memberof @event [name] resolves correctly', function() {
|
||||||
|
var doclet = makeDoclet([memberOf, '@event A']),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toEqual('MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyClass.event:A');
|
||||||
|
});
|
||||||
|
|
||||||
|
// test full @event A.B
|
||||||
|
it('full @event definition works', function() {
|
||||||
|
var doclet = makeDoclet(['@event MyClass.A']),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toEqual('MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyClass.event:A');
|
||||||
|
});
|
||||||
|
it('full @event definition with event: works', function() {
|
||||||
|
var doclet = makeDoclet(['@event MyClass.event:A']),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('event:A');
|
||||||
|
expect(doclet.memberof).toEqual('MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyClass.event:A');
|
||||||
|
});
|
||||||
|
|
||||||
|
// a double-nested one just in case
|
||||||
|
it('@event @name MyClass.EventName @memberof somethingelse workse', function() {
|
||||||
|
var doclet = makeDoclet([event, '@name MyClass.A', '@memberof MyNamespace']),
|
||||||
|
out = jsdoc.name.resolve(doclet);
|
||||||
|
expect(doclet.name).toEqual('A');
|
||||||
|
expect(doclet.memberof).toEqual('MyNamespace.MyClass');
|
||||||
|
expect(doclet.longname).toEqual('MyNamespace.MyClass.event:A');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user