67 lines
2.0 KiB
JavaScript
67 lines
2.0 KiB
JavaScript
|
var mockPackage = require('../mocks/mockPackage');
|
||
|
var Dgeni = require('dgeni');
|
||
|
|
||
|
describe('getJSDocComment service', function() {
|
||
|
|
||
|
var dgeni, injector, getJSDocComment;
|
||
|
|
||
|
function createComment(commentString, start, end, codeTree) {
|
||
|
return {
|
||
|
range: {
|
||
|
toString: function() { return commentString; },
|
||
|
start: { line: start },
|
||
|
end: { line: end },
|
||
|
},
|
||
|
treeAfter: codeTree
|
||
|
};
|
||
|
}
|
||
|
|
||
|
beforeEach(function() {
|
||
|
dgeni = new Dgeni([mockPackage()]);
|
||
|
injector = dgeni.configureInjector();
|
||
|
getJSDocComment = injector.get('getJSDocComment');
|
||
|
});
|
||
|
|
||
|
it('should only return an object if the comment starts with /** and ends with */', function() {
|
||
|
var result = getJSDocComment(createComment('/** this is a jsdoc comment */'));
|
||
|
expect(result).toBeDefined();
|
||
|
|
||
|
result = getJSDocComment(createComment('/* this is a normal comment */'));
|
||
|
expect(result).toBeUndefined();
|
||
|
|
||
|
result = getJSDocComment(createComment('this is not a valid comment */'));
|
||
|
expect(result).toBeUndefined();
|
||
|
|
||
|
result = getJSDocComment(createComment('nor is this'));
|
||
|
expect(result).toBeUndefined();
|
||
|
|
||
|
result = getJSDocComment(createComment('/* or even this'));
|
||
|
expect(result).toBeUndefined();
|
||
|
|
||
|
result = getJSDocComment(createComment('/** and this'));
|
||
|
expect(result).toBeUndefined();
|
||
|
});
|
||
|
|
||
|
|
||
|
it('should return a result that contains info about the comment', function() {
|
||
|
var codeTree = {};
|
||
|
var result = getJSDocComment(createComment('/** this is a comment */', 10, 20, codeTree));
|
||
|
expect(result.startingLine).toEqual(10);
|
||
|
expect(result.endingLine).toEqual(20);
|
||
|
expect(result.codeTree).toBe(codeTree);
|
||
|
});
|
||
|
|
||
|
it('should strip off leading stars from each line', function() {
|
||
|
var result = getJSDocComment(createComment(
|
||
|
'/** this is a jsdoc comment */\n' +
|
||
|
' *\n' +
|
||
|
' * some content\n' +
|
||
|
' */'
|
||
|
));
|
||
|
expect(result.content).toEqual(
|
||
|
'this is a jsdoc comment */\n' +
|
||
|
'\n' +
|
||
|
'some content'
|
||
|
);
|
||
|
});
|
||
|
});
|