diff --git a/packages/language-service/test/diagnostics_spec.ts b/packages/language-service/test/diagnostics_spec.ts index 6f2aa589c0..1bea06f6cd 100644 --- a/packages/language-service/test/diagnostics_spec.ts +++ b/packages/language-service/test/diagnostics_spec.ts @@ -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', () => { diff --git a/packages/language-service/test/project/app/expression-cases.ts b/packages/language-service/test/project/app/expression-cases.ts deleted file mode 100644 index b8ebc80194..0000000000 --- a/packages/language-service/test/project/app/expression-cases.ts +++ /dev/null @@ -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 { -} diff --git a/packages/language-service/test/project/app/main.ts b/packages/language-service/test/project/app/main.ts index edd01e1289..27f0f8d17c 100644 --- a/packages/language-service/test/project/app/main.ts +++ b/packages/language-service/test/project/app/main.ts @@ -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, diff --git a/packages/language-service/test/project/app/parsing-cases.ts b/packages/language-service/test/project/app/parsing-cases.ts index 3158b8a215..da5c203034 100644 --- a/packages/language-service/test/project/app/parsing-cases.ts +++ b/packages/language-service/test/project/app/parsing-cases.ts @@ -169,6 +169,7 @@ export class TemplateReference { birthday = new Date(); readonlyHeroes: ReadonlyArray> = this.heroes; constNames = [{name: 'name'}] as const; + private myField = 'My Field'; } @Component({ diff --git a/packages/language-service/test/ts_plugin_spec.ts b/packages/language-service/test/ts_plugin_spec.ts index 97d93a253c..84817cf1ad 100644 --- a/packages/language-service/test/ts_plugin_spec.ts +++ b/packages/language-service/test/ts_plugin_spec.ts @@ -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([]);