From a6467a96fef813ca95d920f2393afe7c4f5d5ccc Mon Sep 17 00:00:00 2001 From: Matt Lewis Date: Sun, 21 Apr 2019 20:05:08 +0100 Subject: [PATCH] fix(rule): detect trackBy function when ngFor spans multiple lines --- src/templateUseTrackByFunctionRule.ts | 2 +- test/templateUseTrackByFunctionRule.spec.ts | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/templateUseTrackByFunctionRule.ts b/src/templateUseTrackByFunctionRule.ts index cd3690b9e..00d8ba626 100644 --- a/src/templateUseTrackByFunctionRule.ts +++ b/src/templateUseTrackByFunctionRule.ts @@ -5,7 +5,7 @@ import { SourceFile } from 'typescript/lib/typescript'; import { NgWalker, NgWalkerConfig } from './angular/ngWalker'; import { BasicTemplateAstVisitor } from './angular/templates/basicTemplateAstVisitor'; -const PATTERN = /\s*ngFor.*\s*trackBy\s*:|\[ngForTrackBy\]\s*=\s*['"].*['"]/; +const PATTERN = /trackBy\s*:|\[ngForTrackBy\]\s*=\s*['"].*['"]/; // current offset into the template let currentOffset = 0; diff --git a/test/templateUseTrackByFunctionRule.spec.ts b/test/templateUseTrackByFunctionRule.spec.ts index 37917812b..b499dd827 100644 --- a/test/templateUseTrackByFunctionRule.spec.ts +++ b/test/templateUseTrackByFunctionRule.spec.ts @@ -213,5 +213,23 @@ describe(ruleName, () => { `; assertSuccess(ruleName, source); }); + + it('should succeed when trackBy function is on a different line', () => { + const source = ` + @Component({ + template: \` +
+ {{ item }} +
+ \` + }) + class Bar {} + `; + assertSuccess(ruleName, source); + }); }); });