megadoc-docstring
Version:
A generic comment (or "docstring") parser.
64 lines (50 loc) • 1.66 kB
JavaScript
var subject = require('../parser');
var { assert, multiline } = require('megadoc-test-utils');
var Parser = subject.Parser;
describe('Parser.FACTORIES.withName', function() {
var parser;
beforeEach(function() {
parser = new Parser();
parser.defineTag('module', Parser.FACTORIES.withName);
});
it('works with no name and description', function() {
var docstring = multiline(function() {;
// @module
});
var rawTag = subject.parseTag(docstring.trim());
var tag = parser.createTag(rawTag);
assert.equal(tag.name, '');
assert.equal(tag.description, '');
});
it('works with only a name', function() {
var docstring = multiline(function() {;
// @module foo.bar
});
var rawTag = subject.parseTag(docstring.trim());
var tag = parser.createTag(rawTag);
assert.equal(tag.name, 'foo.bar');
assert.equal(tag.description, '');
});
it('works with only a description', function() {
var docstring = multiline(function() {;
// @module
// Some description.
}, true);
var rawTag = subject.parseTag(docstring.trim());
var tag = parser.createTag(rawTag);
assert.equal(tag.name, '');
assert.equal(tag.description, 'Some description.');
});
it('works with both a name and a description', function() {
var docstring = multiline(function() {;
// @module foo.bar
// Some
// multiline
// description.
}, true);
var rawTag = subject.parseTag(docstring.trim());
var tag = parser.createTag(rawTag);
assert.equal(tag.name, 'foo.bar');
assert.equal(tag.description, 'Some\nmultiline\ndescription.');
});
});