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' | ||
|  |     ); | ||
|  |   }); | ||
|  | }); |