48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | /** | ||
|  |  * @license | ||
|  |  * Copyright Google LLC All Rights Reserved. | ||
|  |  * | ||
|  |  * Use of this source code is governed by an MIT-style license that can be | ||
|  |  * found in the LICENSE file at https://angular.io/license
 | ||
|  |  */ | ||
|  | 
 | ||
|  | import {ParseSourceSpan} from '../../../src/parse_util'; | ||
|  | import {Comment} from '../../../src/render3/r3_ast'; | ||
|  | import {parseTemplate} from '../../../src/render3/view/template'; | ||
|  | 
 | ||
|  | describe('collectCommentNodes', () => { | ||
|  |   it('should include an array of HTML comment nodes on the returned R3 AST', () => { | ||
|  |     const html = `
 | ||
|  |       <!-- eslint-disable-next-line --> | ||
|  |       <div *ngFor="let item of items"> | ||
|  |         {{item.name}} | ||
|  |       </div> | ||
|  | 
 | ||
|  |       <div> | ||
|  |         <p> | ||
|  |           <!-- some nested comment --> | ||
|  |           <span>Text</span> | ||
|  |         </p> | ||
|  |       </div> | ||
|  |     `;
 | ||
|  | 
 | ||
|  |     const templateNoCommentsOption = parseTemplate(html, '', {}); | ||
|  |     expect(templateNoCommentsOption.commentNodes).toBeUndefined(); | ||
|  | 
 | ||
|  |     const templateCommentsOptionDisabled = parseTemplate(html, '', {collectCommentNodes: false}); | ||
|  |     expect(templateCommentsOptionDisabled.commentNodes).toBeUndefined(); | ||
|  | 
 | ||
|  |     const templateCommentsOptionEnabled = parseTemplate(html, '', {collectCommentNodes: true}); | ||
|  |     expect(templateCommentsOptionEnabled.commentNodes!.length).toEqual(2); | ||
|  |     expect(templateCommentsOptionEnabled.commentNodes![0]).toBeInstanceOf(Comment); | ||
|  |     expect(templateCommentsOptionEnabled.commentNodes![0].value) | ||
|  |         .toEqual('eslint-disable-next-line'); | ||
|  |     expect(templateCommentsOptionEnabled.commentNodes![0].sourceSpan) | ||
|  |         .toBeInstanceOf(ParseSourceSpan); | ||
|  |     expect(templateCommentsOptionEnabled.commentNodes![1]).toBeInstanceOf(Comment); | ||
|  |     expect(templateCommentsOptionEnabled.commentNodes![1].value).toEqual('some nested comment'); | ||
|  |     expect(templateCommentsOptionEnabled.commentNodes![1].sourceSpan) | ||
|  |         .toBeInstanceOf(ParseSourceSpan); | ||
|  |   }); | ||
|  | }); |