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