@definitelytyped/dtslint 0.0.166 → 0.0.167-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/lint.js +3 -1
  2. package/dist/lint.js.map +1 -1
  3. package/dist/rules/dt-header.d.ts +2 -0
  4. package/dist/rules/dt-header.js +62 -0
  5. package/dist/rules/dt-header.js.map +1 -0
  6. package/dist/rules/export-just-namespace.d.ts +2 -0
  7. package/dist/rules/export-just-namespace.js +70 -0
  8. package/dist/rules/export-just-namespace.js.map +1 -0
  9. package/dist/rules/no-any-union.d.ts +4 -0
  10. package/dist/rules/no-any-union.js +34 -0
  11. package/dist/rules/no-any-union.js.map +1 -0
  12. package/dist/rules/no-bad-reference.d.ts +2 -0
  13. package/dist/rules/no-bad-reference.js +55 -0
  14. package/dist/rules/no-bad-reference.js.map +1 -0
  15. package/dist/rules/no-const-enum.d.ts +4 -0
  16. package/dist/rules/no-const-enum.js +30 -0
  17. package/dist/rules/no-const-enum.js.map +1 -0
  18. package/dist/rules/no-dead-reference.d.ts +2 -0
  19. package/dist/rules/no-dead-reference.js +44 -0
  20. package/dist/rules/no-dead-reference.js.map +1 -0
  21. package/dist/rules/no-declare-current-package.d.ts +4 -0
  22. package/dist/rules/no-declare-current-package.js +43 -0
  23. package/dist/rules/no-declare-current-package.js.map +1 -0
  24. package/dist/rules/no-import-default-of-export-equals.d.ts +4 -0
  25. package/dist/rules/no-import-default-of-export-equals.js +87 -0
  26. package/dist/rules/no-import-default-of-export-equals.js.map +1 -0
  27. package/dist/rules/no-outside-dependencies.d.ts +2 -0
  28. package/dist/rules/no-outside-dependencies.js +41 -0
  29. package/dist/rules/no-outside-dependencies.js.map +1 -0
  30. package/dist/rules/no-self-import.d.ts +4 -0
  31. package/dist/rules/no-self-import.js +38 -0
  32. package/dist/rules/no-self-import.js.map +1 -0
  33. package/dist/rules/no-single-element-tuple-type.d.ts +5 -0
  34. package/dist/rules/no-single-element-tuple-type.js +30 -0
  35. package/dist/rules/no-single-element-tuple-type.js.map +1 -0
  36. package/dist/rules/no-unnecessary-generics.d.ts +8 -0
  37. package/dist/rules/no-unnecessary-generics.js +135 -0
  38. package/dist/rules/no-unnecessary-generics.js.map +1 -0
  39. package/dist/rules/no-useless-files.d.ts +2 -0
  40. package/dist/rules/no-useless-files.js +53 -0
  41. package/dist/rules/no-useless-files.js.map +1 -0
  42. package/dist/rules/prefer-declare-function.d.ts +5 -0
  43. package/dist/rules/prefer-declare-function.js +35 -0
  44. package/dist/rules/prefer-declare-function.js.map +1 -0
  45. package/dist/rules/redundant-undefined.d.ts +4 -0
  46. package/dist/rules/redundant-undefined.js +53 -0
  47. package/dist/rules/redundant-undefined.js.map +1 -0
  48. package/dist/rules/trim-file.d.ts +2 -0
  49. package/dist/rules/trim-file.js +43 -0
  50. package/dist/rules/trim-file.js.map +1 -0
  51. package/dist/util.d.ts +4 -0
  52. package/dist/util.js +23 -1
  53. package/dist/util.js.map +1 -1
  54. package/docs/dt-header.md +88 -0
  55. package/docs/export-just-namespace.md +29 -0
  56. package/docs/no-any-union.md +27 -0
  57. package/docs/no-bad-reference.md +28 -0
  58. package/docs/no-const-enum.md +16 -0
  59. package/docs/no-dead-reference.md +17 -0
  60. package/docs/no-declare-current-package.md +35 -0
  61. package/docs/no-import-default-of-export-equals.md +22 -0
  62. package/docs/no-outside-dependencies.md +23 -0
  63. package/docs/no-self-import.md +27 -0
  64. package/docs/no-single-element-tuple-type.md +15 -0
  65. package/docs/no-unnecessary-generics.md +69 -0
  66. package/docs/no-useless-files.md +14 -0
  67. package/docs/prefer-declare-function.md +15 -0
  68. package/docs/redundant-undefined.md +15 -0
  69. package/docs/trim-file.md +17 -0
  70. package/package.json +2 -2
  71. package/src/lint.ts +3 -1
  72. package/src/rules/dt-header.ts +74 -0
  73. package/src/rules/export-just-namespace.ts +83 -0
  74. package/src/rules/no-any-union.ts +34 -0
  75. package/src/rules/no-bad-reference.ts +62 -0
  76. package/src/rules/no-const-enum.ts +30 -0
  77. package/src/rules/no-dead-reference.ts +46 -0
  78. package/src/rules/no-declare-current-package.ts +45 -0
  79. package/src/rules/no-import-default-of-export-equals.ts +68 -0
  80. package/src/rules/no-outside-dependencies.ts +42 -0
  81. package/src/rules/no-self-import.ts +40 -0
  82. package/src/rules/no-single-element-tuple-type.ts +31 -0
  83. package/src/rules/no-unnecessary-generics.ts +126 -0
  84. package/src/rules/no-useless-files.ts +58 -0
  85. package/src/rules/prefer-declare-function.ts +37 -0
  86. package/src/rules/redundant-undefined.ts +62 -0
  87. package/src/rules/trim-file.ts +45 -0
  88. package/src/util.ts +25 -0
  89. package/test/dt-header.test.ts +189 -0
  90. package/test/export-just-namespace.test.ts +70 -0
  91. package/test/no-any-union.test.ts +22 -0
  92. package/test/no-bad-reference.test.ts +66 -0
  93. package/test/no-const-enum.test.ts +22 -0
  94. package/test/no-dead-reference.test.ts +66 -0
  95. package/test/no-declare-current-package.test.ts +61 -0
  96. package/test/no-import-default-of-export-equals.test.ts +49 -0
  97. package/test/no-self-import.test.ts +47 -0
  98. package/test/no-single-element-tuple-type.test.ts +28 -0
  99. package/test/no-unnecessary-generics.test.ts +152 -0
  100. package/test/no-useless-files.test.ts +42 -0
  101. package/test/prefer-declare-function.test.ts +66 -0
  102. package/test/redundant-undefined.test.ts +39 -0
  103. package/test/trim-file.test.ts +46 -0
  104. package/test/tsconfig.json +10 -0
  105. package/test/tsconfig.no-declare-current-package.json +11 -0
  106. package/test/tsconfig.no-declare-current-package2.json +11 -0
  107. package/test/tsconfig.no-import-default-of-export-equals.json +11 -0
  108. package/test/tsconfig.no-self-import.json +7 -0
  109. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,189 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as dtHeader from "../src/rules/dt-header";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ });
8
+
9
+ ruleTester.run("dt-header", dtHeader, {
10
+ invalid: [
11
+ {
12
+ code: ``,
13
+ errors: [
14
+ {
15
+ column: 2,
16
+ data: {
17
+ expected: "/\\/\\/ Type definitions for (non-npm package )?/",
18
+ },
19
+ line: 1,
20
+ messageId: "parseError",
21
+ },
22
+ ],
23
+ filename: "types/blank/index.d.ts",
24
+ },
25
+ {
26
+ code: `
27
+ // ...
28
+ `,
29
+ errors: [
30
+ {
31
+ column: 1,
32
+ data: {
33
+ expected: "/\\/\\/ Type definitions for (non-npm package )?/",
34
+ },
35
+ line: 2,
36
+ messageId: "parseError",
37
+ },
38
+ ],
39
+ filename: "types/only-comment/index.d.ts",
40
+ },
41
+ {
42
+ code: `
43
+ // Type definitions for dt-header 0.75
44
+ // Project: https://github.com/bobby-headers/dt-header
45
+ // Definitions by: Jane Doe <https://github.com/janedoe>
46
+ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
47
+ // Minimum TypeScript Version: 3.1
48
+
49
+ `,
50
+ errors: [
51
+ {
52
+ column: 1,
53
+ data: {
54
+ expected: "/\\/\\/ Type definitions for (non-npm package )?/",
55
+ },
56
+ line: 2,
57
+ messageId: "parseError",
58
+ },
59
+ ],
60
+ filename: "types/start-with-whitespace/index.d.ts",
61
+ },
62
+ {
63
+ code: `// Type definitions for dt-header 1.0
64
+ // Project: https://github.com/bobby-headers/dt-header
65
+ // Definitions by: Jane Doe <https://github.ORG/janedoe>
66
+ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
67
+ `,
68
+ errors: [
69
+ {
70
+ column: 30,
71
+ data: {
72
+ expected: "/\\<https\\:\\/\\/github\\.com\\/([a-zA-Z\\d\\-]+)\\/?\\>/",
73
+ },
74
+ line: 3,
75
+ messageId: "parseError",
76
+ },
77
+ ],
78
+ filename: "types/bad-url-github-org/index.d.ts",
79
+ },
80
+ {
81
+ code: `// Type definitions for dt-header 1.0
82
+ // Project: https://github.com/bobby-headers/dt-header
83
+ // Definitions by: Jane Doe <https://github.com/jane doe>
84
+ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
85
+ `,
86
+ errors: [
87
+ {
88
+ column: 30,
89
+ data: {
90
+ expected: "/\\<https\\:\\/\\/github\\.com\\/([a-zA-Z\\d\\-]+)\\/?\\>/",
91
+ },
92
+ line: 3,
93
+ messageId: "parseError",
94
+ },
95
+ ],
96
+ filename: "types/bad-url-space/index.d.ts",
97
+ },
98
+ {
99
+ code: `// Type definitions for dt-header 1.0
100
+ // Project: https://github.com/not/important
101
+ // Definitions by: My Self <https://github.com/me>
102
+ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
103
+
104
+ `,
105
+ errors: [
106
+ {
107
+ column: 1,
108
+ endColumn: 27,
109
+ line: 3,
110
+ messageId: "definitionsBy",
111
+ },
112
+ ],
113
+ filename: "types/bad-username/index.d.ts",
114
+ },
115
+ {
116
+ code: `// Type definitions for dt-header v1.0.3
117
+ // Project: https://github.com/bobby-headers/dt-header
118
+ // Definitions by: Jane Doe <https://github.com/janedoe>
119
+ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
120
+ `,
121
+ errors: [
122
+ {
123
+ column: 26,
124
+ data: {
125
+ expected: "foo MAJOR.MINOR (patch version not allowed)",
126
+ },
127
+ line: 1,
128
+ messageId: "parseError",
129
+ },
130
+ ],
131
+ filename: "types/foo/index.d.ts",
132
+ },
133
+ {
134
+ code: `// Type definitions for
135
+ `,
136
+ errors: [
137
+ {
138
+ column: 1,
139
+ endColumn: 24,
140
+ line: 1,
141
+ messageId: "typeDefinitionsFor",
142
+ },
143
+ ],
144
+ filename: "types/foo/notIndex.d.ts",
145
+ },
146
+ ],
147
+ valid: [
148
+ ``,
149
+ {
150
+ code: `// This isn't the main index
151
+ `,
152
+ filename: "types/foo/bar/index.d.ts",
153
+ },
154
+ {
155
+ code: `// Type definitions for dt-header 0.75
156
+ // Project: https://github.com/bobby-headers/dt-header
157
+ // Definitions by: Jane Doe <https://github.com/janedoe>
158
+ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
159
+ // Minimum TypeScript Version: 3.1
160
+
161
+ `,
162
+ filename: "types/foo/v0.75/index.d.ts",
163
+ },
164
+ {
165
+ code: `// Type definitions for dt-header 1.0
166
+ // Project: https://github.com/bobby-headers/dt-header
167
+ // Definitions by: Jane Doe <https://github.com/janedoe>
168
+ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
169
+ // Minimum TypeScript Version: 3.1
170
+
171
+ `,
172
+ filename: "types/foo/v1/index.d.ts",
173
+ },
174
+ {
175
+ code: `// Type definitions for dt-header 2.0
176
+ // Project: https://github.com/bobby-headers/dt-header
177
+ // Definitions by: Jane Doe <https://github.com/janedoe>
178
+ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
179
+ // Minimum TypeScript Version: 3.1
180
+
181
+ `,
182
+ filename: "types/foo/index.d.ts",
183
+ },
184
+ {
185
+ code: ``,
186
+ filename: "types/foo/notIndex.d.ts",
187
+ },
188
+ ],
189
+ });
@@ -0,0 +1,70 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as exportJustNamespace from "../src/rules/export-just-namespace";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ });
8
+
9
+ ruleTester.run("export-just-namespace", exportJustNamespace, {
10
+ invalid: [
11
+ {
12
+ code: `
13
+ export = Stuff;
14
+ namespace Stuff {}
15
+ `,
16
+ errors: [
17
+ {
18
+ line: 2,
19
+ messageId: "useTheBody",
20
+ },
21
+ ],
22
+ },
23
+ {
24
+ code: `
25
+ namespace Stuff {}
26
+ export = Stuff;
27
+ `,
28
+ errors: [
29
+ {
30
+ line: 3,
31
+ messageId: "useTheBody",
32
+ },
33
+ ],
34
+ },
35
+ {
36
+ code: `
37
+ namespace Stuff {}
38
+ const other = "code";
39
+ export = Stuff;
40
+ `,
41
+ errors: [
42
+ {
43
+ line: 4,
44
+ messageId: "useTheBody",
45
+ },
46
+ ],
47
+ },
48
+ ],
49
+ valid: [
50
+ `export const value = 3;`,
51
+ `export default class Hello {}`,
52
+ 'import * as fs from "fs";',
53
+ "const value = 123;",
54
+ `export = stuff;`,
55
+ `export = createStuff();`,
56
+ `
57
+ class Stuff {}
58
+ namespace Stuff {}
59
+ export = Stuff;
60
+ `,
61
+ `export = First
62
+ namespace First {}
63
+ declare function First()
64
+ `,
65
+ `declare namespace Second {}
66
+ export = Second
67
+ declare function Second<U, S>(s: U): S
68
+ `,
69
+ ],
70
+ });
@@ -0,0 +1,22 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as noAnyUnion from "../src/rules/no-any-union";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ });
8
+
9
+ ruleTester.run("no-any-union", noAnyUnion, {
10
+ invalid: [
11
+ {
12
+ code: `export const y: string | any;`,
13
+ errors: [
14
+ {
15
+ line: 1,
16
+ messageId: "anyUnion",
17
+ },
18
+ ],
19
+ },
20
+ ],
21
+ valid: [`export const x: any;`],
22
+ });
@@ -0,0 +1,66 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as noBadReference from "../src/rules/no-bad-reference";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ });
8
+
9
+ ruleTester.run("no-bad-reference", noBadReference, {
10
+ invalid: [
11
+ {
12
+ code: `/// <reference path="../other" />`,
13
+ errors: [
14
+ {
15
+ column: 20,
16
+ endColumn: 28,
17
+ line: 1,
18
+ messageId: "referencePathTest",
19
+ },
20
+ ],
21
+ filename: "types.ts",
22
+ },
23
+ {
24
+ code: `/// <reference path="other" />`,
25
+ errors: [
26
+ {
27
+ column: 20,
28
+ endColumn: 25,
29
+ line: 1,
30
+ messageId: "referencePathTest",
31
+ },
32
+ ],
33
+ filename: "types.ts",
34
+ },
35
+ {
36
+ code: `/// <reference path="../other" />`,
37
+ errors: [
38
+ {
39
+ column: 20,
40
+ endColumn: 28,
41
+ line: 1,
42
+ messageId: "referencePathPackage",
43
+ },
44
+ ],
45
+ filename: "types.d.ts",
46
+ },
47
+ ],
48
+ valid: [
49
+ ``,
50
+ `// unrelated comment`,
51
+ `/// similar (reference path) comment`,
52
+ {
53
+ code: `/// <reference path="other" />`,
54
+ filename: "types.d.ts",
55
+ },
56
+ {
57
+ code: `/// <reference path="./other" />`,
58
+ filename: "types.d.ts",
59
+ },
60
+ {
61
+ code: `/// <reference path="other" />
62
+ /// <reference path="other2" />`,
63
+ filename: "types.d.ts",
64
+ },
65
+ ],
66
+ });
@@ -0,0 +1,22 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as noConstEnum from "../src/rules/no-const-enum";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ });
8
+
9
+ ruleTester.run("no-const-enum", noConstEnum, {
10
+ invalid: [
11
+ {
12
+ code: ` const enum E { } `,
13
+ errors: [
14
+ {
15
+ line: 1,
16
+ messageId: "constEnum",
17
+ },
18
+ ],
19
+ },
20
+ ],
21
+ valid: [` enum F {}`],
22
+ });
@@ -0,0 +1,66 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as noDeadReference from "../src/rules/no-dead-reference";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ });
8
+
9
+ ruleTester.run("no-dead-reference", noDeadReference, {
10
+ invalid: [
11
+ {
12
+ code: `
13
+ export class C { }
14
+ /// <reference types="terms" />
15
+ `,
16
+ errors: [
17
+ {
18
+ line: 3,
19
+ messageId: "referenceAtTop",
20
+ },
21
+ ],
22
+ },
23
+ {
24
+ code: `
25
+ export class C { }
26
+ /// <reference types="terms" />
27
+ /// <reference types="multiple" />
28
+ `,
29
+ errors: [
30
+ {
31
+ line: 3,
32
+ messageId: "referenceAtTop",
33
+ },
34
+ {
35
+ line: 4,
36
+ messageId: "referenceAtTop",
37
+ },
38
+ ],
39
+ },
40
+ {
41
+ code: `
42
+ export class C { }
43
+ /// <reference types="terms" />
44
+ export class D { }
45
+ /// <reference types="multiple" />
46
+ export class E { }
47
+ `,
48
+ errors: [
49
+ {
50
+ line: 3,
51
+ messageId: "referenceAtTop",
52
+ },
53
+ {
54
+ line: 5,
55
+ messageId: "referenceAtTop",
56
+ },
57
+ ],
58
+ },
59
+ ],
60
+ valid: [
61
+ `
62
+ /// <reference types="tones" />
63
+ export class K {}
64
+ `,
65
+ ],
66
+ });
@@ -0,0 +1,61 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as noDeclareCurrentPackage from "../src/rules/no-declare-current-package";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ parserOptions: {
8
+ ecmaVersion: 2018,
9
+ tsconfigRootDir: __dirname,
10
+ project: "./tsconfig.no-declare-current-package.json",
11
+ },
12
+ });
13
+
14
+ ruleTester.run("no-declare-current-package", noDeclareCurrentPackage, {
15
+ invalid: [
16
+ {
17
+ filename: "index.d.ts",
18
+ code: `module "test" { }`,
19
+ errors: [
20
+ {
21
+ line: 1,
22
+ messageId: "noDeclareCurrentPackage",
23
+ },
24
+ ],
25
+ },
26
+ ],
27
+ valid: [
28
+ {
29
+ filename: "index.d.ts",
30
+ code: `module "foo" { }
31
+ module "foo/bar/baz" { }
32
+ `,
33
+ },
34
+ ],
35
+ });
36
+ // needed because you can only test one non-file.ts file per tsconfig
37
+ // (and tsconfig is required for typed-based rules)
38
+ const ruleTester2 = new ESLintUtils.RuleTester({
39
+ parser: "@typescript-eslint/parser",
40
+ parserOptions: {
41
+ ecmaVersion: 2018,
42
+ tsconfigRootDir: __dirname,
43
+ project: "./tsconfig.no-declare-current-package2.json",
44
+ },
45
+ });
46
+
47
+ ruleTester2.run("no-declare-current-package", noDeclareCurrentPackage, {
48
+ invalid: [
49
+ {
50
+ filename: "deep/import.d.ts",
51
+ code: `module "test/deep/import" { }`,
52
+ errors: [
53
+ {
54
+ line: 1,
55
+ messageId: "noDeclareCurrentPackage",
56
+ },
57
+ ],
58
+ },
59
+ ],
60
+ valid: [],
61
+ });
@@ -0,0 +1,49 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as noImportDefaultOfExportEquals from "../src/rules/no-import-default-of-export-equals";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ parserOptions: {
8
+ ecmaVersion: 2018,
9
+ tsconfigRootDir: __dirname,
10
+ project: "./tsconfig.no-import-default-of-export-equals.json",
11
+ },
12
+ });
13
+
14
+ ruleTester.run("no-import-default-of-export-equals", noImportDefaultOfExportEquals, {
15
+ invalid: [
16
+ {
17
+ filename: "index.d.ts",
18
+ code: `declare module "a" {
19
+ interface I {}
20
+ export = I;
21
+ }
22
+
23
+ declare module "b" {
24
+ import a from "a";
25
+ }`,
26
+ errors: [
27
+ {
28
+ line: 7,
29
+ messageId: "noImportDefaultOfExportEquals",
30
+ data: { moduleName: "a", importName: "a" },
31
+ },
32
+ ],
33
+ },
34
+ ],
35
+ valid: [
36
+ {
37
+ filename: "index.d.ts",
38
+ code: `declare module "a" {
39
+ interface I {}
40
+ export default I;
41
+ }
42
+
43
+ declare module "b" {
44
+ import a from "a";
45
+ }
46
+ `,
47
+ },
48
+ ],
49
+ });
@@ -0,0 +1,47 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+ import path from "path";
3
+
4
+ import * as dtHeader from "../src/rules/no-self-import";
5
+
6
+ const ruleTester = new ESLintUtils.RuleTester({
7
+ parser: "@typescript-eslint/parser",
8
+ parserOptions: {
9
+ tsconfigRootDir: __dirname,
10
+ project: "./tsconfig.no-self-import.json",
11
+ },
12
+ });
13
+
14
+ ruleTester.run("no-self-import", dtHeader, {
15
+ invalid: [
16
+ {
17
+ code: `import myself from "this-package";`,
18
+ errors: [
19
+ {
20
+ line: 1,
21
+ messageId: "useRelativeImport",
22
+ },
23
+ ],
24
+ filename: "this-package/index.d.ts",
25
+ },
26
+ {
27
+ code: `import abc from "this-package/abc.d.ts";`,
28
+ errors: [
29
+ {
30
+ line: 1,
31
+ messageId: "useRelativeImport",
32
+ },
33
+ ],
34
+ filename: "this-package/index.d.ts",
35
+ },
36
+ ],
37
+ valid: [
38
+ {
39
+ code: `import other from "other-package";`,
40
+ filename: "this-package/index.d.ts",
41
+ },
42
+ {
43
+ code: `import other from "other-package/this-package";`,
44
+ filename: "this-package/index.d.ts",
45
+ },
46
+ ],
47
+ });
@@ -0,0 +1,28 @@
1
+ import { ESLintUtils } from "@typescript-eslint/utils";
2
+
3
+ import * as noDeclareCurrentPackage from "../src/rules/no-single-element-tuple-type";
4
+
5
+ const ruleTester = new ESLintUtils.RuleTester({
6
+ parser: "@typescript-eslint/parser",
7
+ });
8
+
9
+ ruleTester.run("no-single-element-tuple-type", noDeclareCurrentPackage, {
10
+ invalid: [
11
+ {
12
+ code: `type Test<T> = [T];`,
13
+ errors: [
14
+ {
15
+ line: 1,
16
+ messageId: "singleElementTupleType",
17
+ },
18
+ ],
19
+ },
20
+ ],
21
+ valid: [
22
+ `type Test = number[];`,
23
+ `type Test<T> = T;`,
24
+ `type Test<T> = T[];`,
25
+ `type Test<T> = [T, number];`,
26
+ `type Test<T> = [T, T];`,
27
+ ],
28
+ });