test(language-service): delete expression-cases.ts (#36468)
This commit deletes `expression-cases.ts` and moves the test cases to inline expressions in TEST_TEMPLATE. PR Close #36468
This commit is contained in:
		
							parent
							
								
									5fa7b8ba56
								
							
						
					
					
						commit
						e145fa13b1
					
				| @ -246,30 +246,32 @@ describe('diagnostics', () => { | ||||
|     expect(diags).toEqual([]); | ||||
|   }); | ||||
| 
 | ||||
|   describe('in expression-cases.ts', () => { | ||||
|     it('should report access to an unknown field', () => { | ||||
|       const diags = ngLS.getSemanticDiagnostics(EXPRESSION_CASES).map(d => d.messageText); | ||||
|       expect(diags).toContain( | ||||
|           `Identifier 'foo' is not defined. ` + | ||||
|           `The component declaration, template variable declarations, ` + | ||||
|           `and element references do not contain such a member`); | ||||
|     }); | ||||
|   it('should report access to an unknown field', () => { | ||||
|     mockHost.override(TEST_TEMPLATE, `{{ foo }}`); | ||||
|     const diags = ngLS.getSemanticDiagnostics(TEST_TEMPLATE).map(d => d.messageText); | ||||
|     expect(diags).toContain( | ||||
|         `Identifier 'foo' is not defined. ` + | ||||
|         `The component declaration, template variable declarations, ` + | ||||
|         `and element references do not contain such a member`); | ||||
|   }); | ||||
| 
 | ||||
|     it('should report access to an unknown sub-field', () => { | ||||
|       const diags = ngLS.getSemanticDiagnostics(EXPRESSION_CASES).map(d => d.messageText); | ||||
|       expect(diags).toContain( | ||||
|           `Identifier 'nam' is not defined. 'Person' does not contain such a member`); | ||||
|     }); | ||||
|   it('should report access to an unknown sub-field', () => { | ||||
|     mockHost.override(TEST_TEMPLATE, `{{ hero.nam }}`); | ||||
|     const diags = ngLS.getSemanticDiagnostics(TEST_TEMPLATE).map(d => d.messageText); | ||||
|     expect(diags).toContain( | ||||
|         `Identifier 'nam' is not defined. 'Hero' does not contain such a member`); | ||||
|   }); | ||||
| 
 | ||||
|     it('should report access to a private member', () => { | ||||
|       const diags = ngLS.getSemanticDiagnostics(EXPRESSION_CASES).map(d => d.messageText); | ||||
|       expect(diags).toContain(`Identifier 'myField' refers to a private member of the component`); | ||||
|     }); | ||||
|   it('should report access to a private member', () => { | ||||
|     mockHost.override(TEST_TEMPLATE, `{{ myField }}`); | ||||
|     const diags = ngLS.getSemanticDiagnostics(TEST_TEMPLATE).map(d => d.messageText); | ||||
|     expect(diags).toContain(`Identifier 'myField' refers to a private member of the component`); | ||||
|   }); | ||||
| 
 | ||||
|     it('should report numeric operator errors', () => { | ||||
|       const diags = ngLS.getSemanticDiagnostics(EXPRESSION_CASES).map(d => d.messageText); | ||||
|       expect(diags).toContain('Expected a number type'); | ||||
|     }); | ||||
|   it('should report numeric operator errors', () => { | ||||
|     mockHost.override(TEST_TEMPLATE, `{{ 'a' % 2 }}`); | ||||
|     const diags = ngLS.getSemanticDiagnostics(TEST_TEMPLATE).map(d => d.messageText); | ||||
|     expect(diags).toContain('Expected a number type'); | ||||
|   }); | ||||
| 
 | ||||
|   describe('in ng-for-cases.ts', () => { | ||||
|  | ||||
| @ -1,41 +0,0 @@ | ||||
| /** | ||||
|  * @license | ||||
|  * Copyright Google Inc. 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 {Component} from '@angular/core'; | ||||
| 
 | ||||
| export interface Person { | ||||
|   name: string; | ||||
|   age: number; | ||||
| } | ||||
| 
 | ||||
| @Component({ | ||||
|   template: '{{~{start-foo}foo~{end-foo}}}', | ||||
| }) | ||||
| export class WrongFieldReference { | ||||
|   bar = 'bar'; | ||||
| } | ||||
| 
 | ||||
| @Component({ | ||||
|   template: '{{~{start-nam}person.nam~{end-nam}}}', | ||||
| }) | ||||
| export class WrongSubFieldReference { | ||||
|   person: Person = {name: 'Bob', age: 23}; | ||||
| } | ||||
| 
 | ||||
| @Component({ | ||||
|   template: '{{~{start-myField}myField~{end-myField}}}', | ||||
| }) | ||||
| export class PrivateReference { | ||||
|   private myField = 'My Field'; | ||||
| } | ||||
| 
 | ||||
| @Component({ | ||||
|   template: '{{~{start-mod}"a" ~{end-mod}% 2}}', | ||||
| }) | ||||
| export class ExpectNumericType { | ||||
| } | ||||
| @ -9,9 +9,7 @@ | ||||
| import {CommonModule} from '@angular/common'; | ||||
| import {NgModule} from '@angular/core'; | ||||
| import {FormsModule} from '@angular/forms'; | ||||
| 
 | ||||
| import {AppComponent} from './app.component'; | ||||
| import * as ExpressionCases from './expression-cases'; | ||||
| import * as NgForCases from './ng-for-cases'; | ||||
| import * as NgIfCases from './ng-if-cases'; | ||||
| import * as ParsingCases from './parsing-cases'; | ||||
| @ -20,10 +18,6 @@ import * as ParsingCases from './parsing-cases'; | ||||
|   imports: [CommonModule, FormsModule], | ||||
|   declarations: [ | ||||
|     AppComponent, | ||||
|     ExpressionCases.ExpectNumericType, | ||||
|     ExpressionCases.PrivateReference, | ||||
|     ExpressionCases.WrongFieldReference, | ||||
|     ExpressionCases.WrongSubFieldReference, | ||||
|     NgForCases.UnknownEven, | ||||
|     NgForCases.UnknownPeople, | ||||
|     NgForCases.UnknownTrackBy, | ||||
|  | ||||
| @ -169,6 +169,7 @@ export class TemplateReference { | ||||
|   birthday = new Date(); | ||||
|   readonlyHeroes: ReadonlyArray<Readonly<Hero>> = this.heroes; | ||||
|   constNames = [{name: 'name'}] as const; | ||||
|   private myField = 'My Field'; | ||||
| } | ||||
| 
 | ||||
| @Component({ | ||||
|  | ||||
| @ -57,8 +57,8 @@ describe('plugin', () => { | ||||
|     const compilerDiags = tsLS.getCompilerOptionsDiagnostics(); | ||||
|     expect(compilerDiags).toEqual([]); | ||||
|     const sourceFiles = program.getSourceFiles().filter(f => !f.fileName.endsWith('.d.ts')); | ||||
|     // there are six .ts files in the test project
 | ||||
|     expect(sourceFiles.length).toBe(6); | ||||
|     // there are five .ts files in the test project
 | ||||
|     expect(sourceFiles.length).toBe(5); | ||||
|     for (const {fileName} of sourceFiles) { | ||||
|       const syntacticDiags = tsLS.getSyntacticDiagnostics(fileName); | ||||
|       expect(syntacticDiags).toEqual([]); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user