From eb8c6c7eff0fad5f427c16d2b809141b8b63b118 Mon Sep 17 00:00:00 2001 From: Keen Yee Liau Date: Thu, 2 Apr 2020 21:48:16 -0700 Subject: [PATCH] test(language-service): Move pipe tests to TEST_TEMPLATE (#36407) This commit simplifies the completion tests for pipes by moving them to TEST_TEMPLATE. PR Close #36407 --- .../language-service/test/completions_spec.ts | 27 ++++++++++--------- .../test/project/app/expression-cases.ts | 7 ----- .../language-service/test/project/app/main.ts | 4 +-- .../test/project/app/parsing-cases.ts | 9 +------ .../test/typescript_host_spec.ts | 2 +- 5 files changed, 18 insertions(+), 31 deletions(-) diff --git a/packages/language-service/test/completions_spec.ts b/packages/language-service/test/completions_spec.ts index 9e12a5db67..0bf3e4238e 100644 --- a/packages/language-service/test/completions_spec.ts +++ b/packages/language-service/test/completions_spec.ts @@ -469,21 +469,24 @@ describe('completions', () => { describe('for pipes', () => { it('should be able to get a list of pipe values', () => { - for (const location of ['before-pipe', 'in-pipe', 'after-pipe']) { - const marker = mockHost.getLocationMarkerFor(PARSING_CASES, location); - const completions = ngLS.getCompletionsAtPosition(PARSING_CASES, marker.start); - expectContain(completions, CompletionKind.PIPE, [ - 'async', - 'uppercase', - 'lowercase', - 'titlecase', - ]); - } + // TODO(kyliau): does not work for case {{ title | ~{cursor} }} + // space before and after pipe ^^^ + mockHost.override(TEST_TEMPLATE, `{{ title|~{cursor} }}`); + const marker = mockHost.getLocationMarkerFor(TEST_TEMPLATE, 'cursor'); + const completions = ngLS.getCompletionsAtPosition(TEST_TEMPLATE, marker.start); + expectContain(completions, CompletionKind.PIPE, [ + 'async', + 'lowercase', + 'slice', + 'titlecase', + 'uppercase', + ]); }); it('should be able to resolve lowercase', () => { - const marker = mockHost.getLocationMarkerFor(EXPRESSION_CASES, 'string-pipe'); - const completions = ngLS.getCompletionsAtPosition(EXPRESSION_CASES, marker.start); + mockHost.override(TEST_TEMPLATE, `{{ (title | lowercase).~{cursor} }}`); + const marker = mockHost.getLocationMarkerFor(TEST_TEMPLATE, 'cursor'); + const completions = ngLS.getCompletionsAtPosition(TEST_TEMPLATE, marker.start); expectContain(completions, CompletionKind.METHOD, [ 'charAt', 'replace', diff --git a/packages/language-service/test/project/app/expression-cases.ts b/packages/language-service/test/project/app/expression-cases.ts index decc717a62..b8ebc80194 100644 --- a/packages/language-service/test/project/app/expression-cases.ts +++ b/packages/language-service/test/project/app/expression-cases.ts @@ -39,10 +39,3 @@ export class PrivateReference { }) export class ExpectNumericType { } - -@Component({ - template: '{{ (name | lowercase).~{string-pipe}substring }}', -}) -export class LowercasePipe { - name: string = 'name'; -} diff --git a/packages/language-service/test/project/app/main.ts b/packages/language-service/test/project/app/main.ts index daa4ef3c0b..edd01e1289 100644 --- a/packages/language-service/test/project/app/main.ts +++ b/packages/language-service/test/project/app/main.ts @@ -21,7 +21,6 @@ import * as ParsingCases from './parsing-cases'; declarations: [ AppComponent, ExpressionCases.ExpectNumericType, - ExpressionCases.LowercasePipe, ExpressionCases.PrivateReference, ExpressionCases.WrongFieldReference, ExpressionCases.WrongSubFieldReference, @@ -38,7 +37,6 @@ import * as ParsingCases from './parsing-cases'; ParsingCases.HintModel, ParsingCases.NoValueAttribute, ParsingCases.NumberModel, - ParsingCases.Pipes, ParsingCases.References, ParsingCases.StringModel, ParsingCases.TemplateReference, @@ -51,4 +49,4 @@ export class AppModule { declare function bootstrap(v: any): void; - bootstrap(AppComponent); +bootstrap(AppComponent); diff --git a/packages/language-service/test/project/app/parsing-cases.ts b/packages/language-service/test/project/app/parsing-cases.ts index 3239e008cf..3158b8a215 100644 --- a/packages/language-service/test/project/app/parsing-cases.ts +++ b/packages/language-service/test/project/app/parsing-cases.ts @@ -31,13 +31,6 @@ export class CaseMissingClosing { export class CaseUnknown { } -@Component({ - template: '

{{data | ~{before-pipe}lowe~{in-pipe}rcase~{after-pipe} }}', -}) -export class Pipes { - data = 'Some string'; -} - @Component({ template: '

', }) @@ -175,7 +168,7 @@ export class TemplateReference { myClick(event: any) {} birthday = new Date(); readonlyHeroes: ReadonlyArray> = this.heroes; - constNames = [{name: 'name'}] as const ; + constNames = [{name: 'name'}] as const; } @Component({ diff --git a/packages/language-service/test/typescript_host_spec.ts b/packages/language-service/test/typescript_host_spec.ts index 7d383c46d6..07a09575f9 100644 --- a/packages/language-service/test/typescript_host_spec.ts +++ b/packages/language-service/test/typescript_host_spec.ts @@ -94,7 +94,7 @@ describe('TypeScriptServiceHost', () => { const tsLS = ts.createLanguageService(tsLSHost); const ngLSHost = new TypeScriptServiceHost(tsLSHost, tsLS); const templates = ngLSHost.getTemplates('/app/parsing-cases.ts'); - expect(templates.length).toBe(9); + expect(templates.length).toBe(8); }); it('should be able to find external template', () => {