From 35db43043fc59029d5ac616ab3c3b731a1fcfa17 Mon Sep 17 00:00:00 2001 From: Vincent Langlet Date: Sat, 13 Apr 2019 02:52:43 +0200 Subject: [PATCH] Fix interfaceName rule (#4655) --- src/rules/interfaceNameRule.ts | 8 +++----- test/rules/interface-name/always-prefix/test.ts.lint | 10 ++++++++++ test/rules/interface-name/never-prefix/test.ts.lint | 9 +++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/rules/interfaceNameRule.ts b/src/rules/interfaceNameRule.ts index 38e1d894743..8f6716649cf 100644 --- a/src/rules/interfaceNameRule.ts +++ b/src/rules/interfaceNameRule.ts @@ -75,19 +75,17 @@ function walk(ctx: Lint.WalkContext<{ never: boolean }>): void { } function hasPrefixI(name: string): boolean { - return ( - name.length >= 3 && name[0] === "I" && /^[A-Z]*$/.test(name[1]) && !/^[A-Z]*$/.test(name[2]) - ); + return name.length >= 3 && name[0] === "I" && /^[A-Z]*$/.test(name[1]); } function cantDecide(name: string): boolean { return ( // Case ID (name.length === 2 && name[0] === "I" && /^[A-Z]*$/.test(name[1])) || - // Case IDB + // Case IDB or ID42 (name.length >= 2 && name[0] === "I" && /^[A-Z]*$/.test(name[1]) && - /^[A-Z]*$/.test(name[2])) + !/^[a-z]*$/.test(name[2])) ); } diff --git a/test/rules/interface-name/always-prefix/test.ts.lint b/test/rules/interface-name/always-prefix/test.ts.lint index a13794d3852..a196ab0fb7e 100644 --- a/test/rules/interface-name/always-prefix/test.ts.lint +++ b/test/rules/interface-name/always-prefix/test.ts.lint @@ -14,6 +14,12 @@ interface IDBFactory { interface II18nService { } +interface IIS3Foobar { +} + +interface IS3Foobar { +} + // invalid code interface Options { ~~~~~~~ [interface name must start with a capitalized I] @@ -22,3 +28,7 @@ interface Options { interface Incomplete { ~~~~~~~~~~ [interface name must start with a capitalized I] } + +interface I18nService { + ~~~~~~~~~~~ [interface name must start with a capitalized I] +} diff --git a/test/rules/interface-name/never-prefix/test.ts.lint b/test/rules/interface-name/never-prefix/test.ts.lint index f6afc38f412..1dd62de83ba 100644 --- a/test/rules/interface-name/never-prefix/test.ts.lint +++ b/test/rules/interface-name/never-prefix/test.ts.lint @@ -17,6 +17,15 @@ interface IDBFactory { interface I18nFactory { } +interface II18nFactory { +} + +interface IS3Foobar { +} + +interface IIS3Foobar { +} + interface ABC { }