eslint-config-typed 3.14.1 → 4.0.0

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 (63) hide show
  1. package/README.md +90 -9
  2. package/dist/plugins/vitest-coding-style/rules/prefer-assert-deep-strict-equal-over-deep-equal.d.mts +6 -0
  3. package/dist/plugins/vitest-coding-style/rules/prefer-assert-deep-strict-equal-over-deep-equal.d.mts.map +1 -0
  4. package/dist/plugins/vitest-coding-style/rules/{prefer-assert-over-assert-ok.mjs → prefer-assert-deep-strict-equal-over-deep-equal.mjs} +8 -8
  5. package/dist/plugins/vitest-coding-style/rules/prefer-assert-deep-strict-equal-over-deep-equal.mjs.map +1 -0
  6. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.d.mts +6 -0
  7. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.d.mts.map +1 -0
  8. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.mjs +41 -0
  9. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.mjs.map +1 -0
  10. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.d.mts +6 -0
  11. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.d.mts.map +1 -0
  12. package/dist/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-assert-is-not-ok.mjs → prefer-assert-is-false-over-assert-not-ok.mjs} +8 -8
  13. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.mjs.map +1 -0
  14. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.d.mts +6 -0
  15. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.d.mts.map +1 -0
  16. package/dist/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-expect-false.mjs → prefer-assert-is-false-over-expect-false.mjs} +7 -7
  17. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.mjs.map +1 -0
  18. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.d.mts +6 -0
  19. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.d.mts.map +1 -0
  20. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.mjs +41 -0
  21. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.mjs.map +1 -0
  22. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.d.mts +6 -0
  23. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.d.mts.map +1 -0
  24. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mjs +52 -0
  25. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mjs.map +1 -0
  26. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-expect-true.d.mts +6 -0
  27. package/dist/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-expect-false.d.mts.map → prefer-assert-is-true-over-expect-true.d.mts.map} +1 -1
  28. package/dist/plugins/vitest-coding-style/rules/{prefer-assert-over-expect-true.mjs → prefer-assert-is-true-over-expect-true.mjs} +7 -7
  29. package/dist/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-expect-false.mjs.map → prefer-assert-is-true-over-expect-true.mjs.map} +1 -1
  30. package/dist/plugins/vitest-coding-style/rules/rules.d.mts +7 -4
  31. package/dist/plugins/vitest-coding-style/rules/rules.d.mts.map +1 -1
  32. package/dist/plugins/vitest-coding-style/rules/rules.mjs +14 -8
  33. package/dist/plugins/vitest-coding-style/rules/rules.mjs.map +1 -1
  34. package/dist/rules/eslint-vitest-coding-style-rules.d.mts +7 -4
  35. package/dist/rules/eslint-vitest-coding-style-rules.d.mts.map +1 -1
  36. package/dist/rules/eslint-vitest-coding-style-rules.mjs +7 -4
  37. package/dist/rules/eslint-vitest-coding-style-rules.mjs.map +1 -1
  38. package/dist/types/rules/eslint-vitest-coding-style-rules.d.mts +57 -12
  39. package/dist/types/rules/eslint-vitest-coding-style-rules.d.mts.map +1 -1
  40. package/package.json +6 -1
  41. package/src/plugins/vitest-coding-style/rules/original-assert-api-type.test.mts +147 -0
  42. package/src/plugins/vitest-coding-style/rules/prefer-assert-coding-style-rules.test.mts +118 -40
  43. package/src/plugins/vitest-coding-style/rules/{prefer-assert-over-assert-ok.mts → prefer-assert-deep-strict-equal-over-deep-equal.mts} +8 -8
  44. package/src/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.mts +53 -0
  45. package/src/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-assert-is-not-ok.mts → prefer-assert-is-false-over-assert-not-ok.mts} +9 -8
  46. package/src/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-expect-false.mts → prefer-assert-is-false-over-expect-false.mts} +8 -7
  47. package/src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.mts +53 -0
  48. package/src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mts +67 -0
  49. package/src/plugins/vitest-coding-style/rules/{prefer-assert-over-expect-true.mts → prefer-assert-is-true-over-expect-true.mts} +8 -7
  50. package/src/plugins/vitest-coding-style/rules/rules.mts +22 -10
  51. package/src/plugins/vitest-coding-style/rules/vitest-coding-style.d.mts +1574 -0
  52. package/src/rules/eslint-vitest-coding-style-rules.mts +10 -4
  53. package/src/types/rules/eslint-vitest-coding-style-rules.mts +60 -12
  54. package/dist/plugins/vitest-coding-style/rules/prefer-assert-not-ok-over-assert-is-not-ok.d.mts +0 -6
  55. package/dist/plugins/vitest-coding-style/rules/prefer-assert-not-ok-over-assert-is-not-ok.d.mts.map +0 -1
  56. package/dist/plugins/vitest-coding-style/rules/prefer-assert-not-ok-over-assert-is-not-ok.mjs.map +0 -1
  57. package/dist/plugins/vitest-coding-style/rules/prefer-assert-not-ok-over-expect-false.d.mts +0 -6
  58. package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-assert-ok.d.mts +0 -6
  59. package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-assert-ok.d.mts.map +0 -1
  60. package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-assert-ok.mjs.map +0 -1
  61. package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-expect-true.d.mts +0 -6
  62. package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-expect-true.d.mts.map +0 -1
  63. package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-expect-true.mjs.map +0 -1
@@ -1,15 +1,21 @@
1
1
  import { noExpectToStrictEqualRule } from './no-expect-to-strict-equal.mjs';
2
- import { preferAssertNotOkOverAssertIsNotOkRule } from './prefer-assert-not-ok-over-assert-is-not-ok.mjs';
3
- import { preferAssertNotOkOverExpectFalseRule } from './prefer-assert-not-ok-over-expect-false.mjs';
4
- import { preferAssertOverAssertOkRule } from './prefer-assert-over-assert-ok.mjs';
5
- import { preferAssertOverExpectTrueRule } from './prefer-assert-over-expect-true.mjs';
2
+ import { preferAssertDeepStrictEqualOverDeepEqualRule } from './prefer-assert-deep-strict-equal-over-deep-equal.mjs';
3
+ import { preferAssertIsFalseOverNegatedAssertIsTrueRule } from './prefer-assert-is-false-over-assert-negation.mjs';
4
+ import { preferAssertIsFalseOverAssertNotOkRule } from './prefer-assert-is-false-over-assert-not-ok.mjs';
5
+ import { preferAssertIsFalseOverExpectFalseRule } from './prefer-assert-is-false-over-expect-false.mjs';
6
+ import { preferAssertIsTrueOverNegatedAssertIsFalseRule } from './prefer-assert-is-true-over-assert-negated-is-false.mjs';
7
+ import { preferAssertIsTrueOverAssertRule } from './prefer-assert-is-true-over-assert.mjs';
8
+ import { preferAssertIsTrueOverExpectTrueRule } from './prefer-assert-is-true-over-expect-true.mjs';
6
9
 
7
10
  const vitestCodingStyleRules = {
8
11
  'no-expect-to-strict-equal': noExpectToStrictEqualRule,
9
- 'prefer-assert-over-assert-ok': preferAssertOverAssertOkRule,
10
- 'prefer-assert-not-ok-over-assert-is-not-ok': preferAssertNotOkOverAssertIsNotOkRule,
11
- 'prefer-assert-over-expect-true': preferAssertOverExpectTrueRule,
12
- 'prefer-assert-not-ok-over-expect-false': preferAssertNotOkOverExpectFalseRule,
12
+ 'prefer-assert-deep-strict-equal-over-deep-equal': preferAssertDeepStrictEqualOverDeepEqualRule,
13
+ 'prefer-assert-is-true-over-assert': preferAssertIsTrueOverAssertRule,
14
+ 'prefer-assert-is-false-over-assert-not-ok': preferAssertIsFalseOverAssertNotOkRule,
15
+ 'prefer-assert-is-true-over-expect-true': preferAssertIsTrueOverExpectTrueRule,
16
+ 'prefer-assert-is-false-over-expect-false': preferAssertIsFalseOverExpectFalseRule,
17
+ 'prefer-assert-is-false-over-negated-assert-is-true': preferAssertIsFalseOverNegatedAssertIsTrueRule,
18
+ 'prefer-assert-is-true-over-negated-assert-is-false': preferAssertIsTrueOverNegatedAssertIsFalseRule,
13
19
  };
14
20
 
15
21
  export { vitestCodingStyleRules };
@@ -1 +1 @@
1
- {"version":3,"file":"rules.mjs","sources":["../../../../src/plugins/vitest-coding-style/rules/rules.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAOO,MAAM,sBAAsB,GAAG;AACpC,IAAA,2BAA2B,EAAE,yBAAyB;AAEtD,IAAA,8BAA8B,EAAE,4BAA4B;AAC5D,IAAA,4CAA4C,EAC1C,sCAAsC;AAExC,IAAA,gCAAgC,EAAE,8BAA8B;AAChE,IAAA,wCAAwC,EACtC,oCAAoC;;;;;"}
1
+ {"version":3,"file":"rules.mjs","sources":["../../../../src/plugins/vitest-coding-style/rules/rules.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAUO,MAAM,sBAAsB,GAAG;AACpC,IAAA,2BAA2B,EAAE,yBAAyB;AAEtD,IAAA,iDAAiD,EAC/C,4CAA4C;AAE9C,IAAA,mCAAmC,EAAE,gCAAgC;AACrE,IAAA,2CAA2C,EACzC,sCAAsC;AAExC,IAAA,wCAAwC,EACtC,oCAAoC;AACtC,IAAA,0CAA0C,EACxC,sCAAsC;AAExC,IAAA,oDAAoD,EAClD,8CAA8C;AAChD,IAAA,oDAAoD,EAClD,8CAA8C;;;;;"}
@@ -1,8 +1,11 @@
1
1
  export declare const eslintVitestCodingStyleRules: {
2
2
  readonly 'vitest-coding-style/no-expect-to-strict-equal': "error";
3
- readonly 'vitest-coding-style/prefer-assert-over-assert-ok': "error";
4
- readonly 'vitest-coding-style/prefer-assert-not-ok-over-assert-is-not-ok': "error";
5
- readonly 'vitest-coding-style/prefer-assert-over-expect-true': "error";
6
- readonly 'vitest-coding-style/prefer-assert-not-ok-over-expect-false': "error";
3
+ readonly 'vitest-coding-style/prefer-assert-deep-strict-equal-over-deep-equal': "error";
4
+ readonly 'vitest-coding-style/prefer-assert-is-false-over-assert-not-ok': "error";
5
+ readonly 'vitest-coding-style/prefer-assert-is-false-over-expect-false': "error";
6
+ readonly 'vitest-coding-style/prefer-assert-is-false-over-negated-assert-is-true': "error";
7
+ readonly 'vitest-coding-style/prefer-assert-is-true-over-assert': "error";
8
+ readonly 'vitest-coding-style/prefer-assert-is-true-over-expect-true': "error";
9
+ readonly 'vitest-coding-style/prefer-assert-is-true-over-negated-assert-is-false': "error";
7
10
  };
8
11
  //# sourceMappingURL=eslint-vitest-coding-style-rules.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-vitest-coding-style-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-vitest-coding-style-rules.mts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B;;;;;;CAMQ,CAAC"}
1
+ {"version":3,"file":"eslint-vitest-coding-style-rules.d.mts","sourceRoot":"","sources":["../../src/rules/eslint-vitest-coding-style-rules.mts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B;;;;;;;;;CAYQ,CAAC"}
@@ -1,9 +1,12 @@
1
1
  const eslintVitestCodingStyleRules = {
2
2
  'vitest-coding-style/no-expect-to-strict-equal': 'error',
3
- 'vitest-coding-style/prefer-assert-over-assert-ok': 'error',
4
- 'vitest-coding-style/prefer-assert-not-ok-over-assert-is-not-ok': 'error',
5
- 'vitest-coding-style/prefer-assert-over-expect-true': 'error',
6
- 'vitest-coding-style/prefer-assert-not-ok-over-expect-false': 'error',
3
+ 'vitest-coding-style/prefer-assert-deep-strict-equal-over-deep-equal': 'error',
4
+ 'vitest-coding-style/prefer-assert-is-false-over-assert-not-ok': 'error',
5
+ 'vitest-coding-style/prefer-assert-is-false-over-expect-false': 'error',
6
+ 'vitest-coding-style/prefer-assert-is-false-over-negated-assert-is-true': 'error',
7
+ 'vitest-coding-style/prefer-assert-is-true-over-assert': 'error',
8
+ 'vitest-coding-style/prefer-assert-is-true-over-expect-true': 'error',
9
+ 'vitest-coding-style/prefer-assert-is-true-over-negated-assert-is-false': 'error',
7
10
  };
8
11
 
9
12
  export { eslintVitestCodingStyleRules };
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-vitest-coding-style-rules.mjs","sources":["../../src/rules/eslint-vitest-coding-style-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,4BAA4B,GAAG;AAC1C,IAAA,+CAA+C,EAAE,OAAO;AACxD,IAAA,kDAAkD,EAAE,OAAO;AAC3D,IAAA,gEAAgE,EAAE,OAAO;AACzE,IAAA,oDAAoD,EAAE,OAAO;AAC7D,IAAA,4DAA4D,EAAE,OAAO;;;;;"}
1
+ {"version":3,"file":"eslint-vitest-coding-style-rules.mjs","sources":["../../src/rules/eslint-vitest-coding-style-rules.mts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,4BAA4B,GAAG;AAC1C,IAAA,+CAA+C,EAAE,OAAO;AACxD,IAAA,qEAAqE,EACnE,OAAO;AACT,IAAA,+DAA+D,EAAE,OAAO;AACxE,IAAA,8DAA8D,EAAE,OAAO;AACvE,IAAA,wEAAwE,EACtE,OAAO;AACT,IAAA,uDAAuD,EAAE,OAAO;AAChE,IAAA,4DAA4D,EAAE,OAAO;AACrE,IAAA,wEAAwE,EACtE,OAAO;;;;;"}
@@ -15,7 +15,7 @@ declare namespace NoExpectToStrictEqual {
15
15
  type RuleEntry = Linter.StringSeverity;
16
16
  }
17
17
  /**
18
- * Prefer assert(X) over assert.ok(X), assert.isOk(X).
18
+ * Prefer assert.deepStrictEqual(X) over assert.deepEqual(X).
19
19
  *
20
20
  * ```md
21
21
  * | key | value |
@@ -25,11 +25,11 @@ declare namespace NoExpectToStrictEqual {
25
25
  * | fixable | code |
26
26
  * ```
27
27
  */
28
- declare namespace PreferAssertOverAssertOk {
28
+ declare namespace PreferAssertDeepStrictEqualOverDeepEqual {
29
29
  type RuleEntry = Linter.StringSeverity;
30
30
  }
31
31
  /**
32
- * Prefer assert.notOk(X) over assert.isNotOk(X).
32
+ * Prefer assert.isTrue(X) over assert(X), assert.isOk(X), assert.ok(X).
33
33
  *
34
34
  * ```md
35
35
  * | key | value |
@@ -39,11 +39,11 @@ declare namespace PreferAssertOverAssertOk {
39
39
  * | fixable | code |
40
40
  * ```
41
41
  */
42
- declare namespace PreferAssertNotOkOverAssertIsNotOk {
42
+ declare namespace PreferAssertIsTrueOverAssert {
43
43
  type RuleEntry = Linter.StringSeverity;
44
44
  }
45
45
  /**
46
- * Prefer assert(X) over expect(X).toBe(true) (only if X is boolean)
46
+ * Prefer assert.isFalse(X) over assert.isNotOk(X), assert.notOk(X).
47
47
  *
48
48
  * ```md
49
49
  * | key | value |
@@ -53,11 +53,11 @@ declare namespace PreferAssertNotOkOverAssertIsNotOk {
53
53
  * | fixable | code |
54
54
  * ```
55
55
  */
56
- declare namespace PreferAssertOverExpectTrue {
56
+ declare namespace PreferAssertIsFalseOverAssertNotOk {
57
57
  type RuleEntry = Linter.StringSeverity;
58
58
  }
59
59
  /**
60
- * Prefer assert.notOk(X) over expect(X).toBe(false) (only if X is boolean)
60
+ * Prefer assert.isTrue(X) over expect(X).toBe(true) (only if X is boolean)
61
61
  *
62
62
  * ```md
63
63
  * | key | value |
@@ -67,15 +67,60 @@ declare namespace PreferAssertOverExpectTrue {
67
67
  * | fixable | code |
68
68
  * ```
69
69
  */
70
- declare namespace PreferAssertNotOkOverExpectFalse {
70
+ declare namespace PreferAssertIsTrueOverExpectTrue {
71
+ type RuleEntry = Linter.StringSeverity;
72
+ }
73
+ /**
74
+ * Prefer assert.isFalse(X) over expect(X).toBe(false) (only if X is boolean)
75
+ *
76
+ * ```md
77
+ * | key | value |
78
+ * | :--------- | :--------- |
79
+ * | type | suggestion |
80
+ * | deprecated | false |
81
+ * | fixable | code |
82
+ * ```
83
+ */
84
+ declare namespace PreferAssertIsFalseOverExpectFalse {
85
+ type RuleEntry = Linter.StringSeverity;
86
+ }
87
+ /**
88
+ * Prefer assert.isFalse(X) over assert.isTrue(!X).
89
+ *
90
+ * ```md
91
+ * | key | value |
92
+ * | :--------- | :--------- |
93
+ * | type | suggestion |
94
+ * | deprecated | false |
95
+ * | fixable | code |
96
+ * ```
97
+ */
98
+ declare namespace PreferAssertIsFalseOverNegatedAssertIsTrue {
99
+ type RuleEntry = Linter.StringSeverity;
100
+ }
101
+ /**
102
+ * Prefer assert.isTrue(X) over assert.isFalse(!X).
103
+ *
104
+ * ```md
105
+ * | key | value |
106
+ * | :--------- | :--------- |
107
+ * | type | suggestion |
108
+ * | deprecated | false |
109
+ * | fixable | code |
110
+ * ```
111
+ */
112
+ declare namespace PreferAssertIsTrueOverNegatedAssertIsFalse {
71
113
  type RuleEntry = Linter.StringSeverity;
72
114
  }
73
115
  export type EslintVitestCodingStyleRules = Readonly<{
74
116
  'vitest-coding-style/no-expect-to-strict-equal': NoExpectToStrictEqual.RuleEntry;
75
- 'vitest-coding-style/prefer-assert-over-assert-ok': PreferAssertOverAssertOk.RuleEntry;
76
- 'vitest-coding-style/prefer-assert-not-ok-over-assert-is-not-ok': PreferAssertNotOkOverAssertIsNotOk.RuleEntry;
77
- 'vitest-coding-style/prefer-assert-over-expect-true': PreferAssertOverExpectTrue.RuleEntry;
78
- 'vitest-coding-style/prefer-assert-not-ok-over-expect-false': PreferAssertNotOkOverExpectFalse.RuleEntry;
117
+ 'vitest-coding-style/prefer-assert-deep-strict-equal-over-deep-equal': PreferAssertDeepStrictEqualOverDeepEqual.RuleEntry;
118
+ 'vitest-coding-style/prefer-assert-is-true-over-assert': PreferAssertIsTrueOverAssert.RuleEntry;
119
+ 'vitest-coding-style/prefer-assert-is-false-over-assert-not-ok': PreferAssertIsFalseOverAssertNotOk.RuleEntry;
120
+ 'vitest-coding-style/prefer-assert-is-true-over-expect-true': PreferAssertIsTrueOverExpectTrue.RuleEntry;
121
+ 'vitest-coding-style/prefer-assert-is-false-over-expect-false': PreferAssertIsFalseOverExpectFalse.RuleEntry;
122
+ 'vitest-coding-style/prefer-assert-is-false-over-negated-assert-is-true': PreferAssertIsFalseOverNegatedAssertIsTrue.RuleEntry;
123
+ 'vitest-coding-style/prefer-assert-is-true-over-negated-assert-is-false': PreferAssertIsTrueOverNegatedAssertIsFalse.RuleEntry;
79
124
  }>;
80
125
  export {};
81
126
  //# sourceMappingURL=eslint-vitest-coding-style-rules.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-vitest-coding-style-rules.d.mts","sourceRoot":"","sources":["../../../src/types/rules/eslint-vitest-coding-style-rules.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;;;;;;;;;GAWG;AACH,kBAAU,qBAAqB,CAAC;IAC9B,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,wBAAwB,CAAC;IACjC,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,kCAAkC,CAAC;IAC3C,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,0BAA0B,CAAC;IACnC,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,gCAAgC,CAAC;IACzC,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC;IAClD,+CAA+C,EAAE,qBAAqB,CAAC,SAAS,CAAC;IACjF,kDAAkD,EAAE,wBAAwB,CAAC,SAAS,CAAC;IACvF,gEAAgE,EAAE,kCAAkC,CAAC,SAAS,CAAC;IAC/G,oDAAoD,EAAE,0BAA0B,CAAC,SAAS,CAAC;IAC3F,4DAA4D,EAAE,gCAAgC,CAAC,SAAS,CAAC;CAC1G,CAAC,CAAC"}
1
+ {"version":3,"file":"eslint-vitest-coding-style-rules.d.mts","sourceRoot":"","sources":["../../../src/types/rules/eslint-vitest-coding-style-rules.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC;;;;;;;;;;;GAWG;AACH,kBAAU,qBAAqB,CAAC;IAC9B,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,wCAAwC,CAAC;IACjD,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,4BAA4B,CAAC;IACrC,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,kCAAkC,CAAC;IAC3C,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,gCAAgC,CAAC;IACzC,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,kCAAkC,CAAC;IAC3C,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,0CAA0C,CAAC;IACnD,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,kBAAU,0CAA0C,CAAC;IACnD,KAAY,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;CAC/C;AAED,MAAM,MAAM,4BAA4B,GAAG,QAAQ,CAAC;IAClD,+CAA+C,EAAE,qBAAqB,CAAC,SAAS,CAAC;IACjF,qEAAqE,EAAE,wCAAwC,CAAC,SAAS,CAAC;IAC1H,uDAAuD,EAAE,4BAA4B,CAAC,SAAS,CAAC;IAChG,+DAA+D,EAAE,kCAAkC,CAAC,SAAS,CAAC;IAC9G,4DAA4D,EAAE,gCAAgC,CAAC,SAAS,CAAC;IACzG,8DAA8D,EAAE,kCAAkC,CAAC,SAAS,CAAC;IAC7G,wEAAwE,EAAE,0CAA0C,CAAC,SAAS,CAAC;IAC/H,wEAAwE,EAAE,0CAA0C,CAAC,SAAS,CAAC;CAChI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eslint-config-typed",
3
- "version": "3.14.1",
3
+ "version": "4.0.0",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript"
@@ -19,6 +19,11 @@
19
19
  "types": "./dist/types.d.mts",
20
20
  "default": "./dist/entry-point.mjs"
21
21
  }
22
+ },
23
+ "./vitest-coding-style": {
24
+ "import": {
25
+ "types": "./src/plugins/vitest-coding-style/rules/vitest-coding-style.d.mts"
26
+ }
22
27
  }
23
28
  },
24
29
  "module": "./dist/entry-point.mjs",
@@ -0,0 +1,147 @@
1
+ import { expectType } from 'ts-data-forge';
2
+ // eslint-disable-next-line vitest/no-importing-vitest-globals
3
+ import { type assert as originalAssert } from 'vitest';
4
+
5
+ expectType<
6
+ StrictExclude<
7
+ keyof typeof originalAssert,
8
+ | 'approximately'
9
+ | 'changes'
10
+ | 'changesBy'
11
+ | 'closeTo'
12
+ | 'containsAllDeepKeys'
13
+ | 'containsAllKeys'
14
+ | 'containsSubset'
15
+ | 'containSubset'
16
+ | 'decreases'
17
+ | 'decreasesButNotBy'
18
+ | 'decreasesBy'
19
+ | 'deepEqual' // remove
20
+ | 'deepInclude'
21
+ | 'deepNestedInclude'
22
+ | 'deepNestedPropertyVal'
23
+ | 'deepOwnInclude'
24
+ | 'deepProperty'
25
+ | 'deepPropertyVal'
26
+ | 'deepStrictEqual'
27
+ | 'doesNotChange'
28
+ | 'doesNotContainSubset'
29
+ | 'doesNotDecrease'
30
+ | 'doesNotDecreaseBy'
31
+ | 'doesNotHaveAllDeepKeys'
32
+ | 'doesNotHaveAllKeys'
33
+ | 'doesNotHaveAnyDeepKeys'
34
+ | 'doesNotHaveAnyKeys'
35
+ | 'doesNotIncrease'
36
+ | 'doesNotThrow'
37
+ | 'equal' // remove
38
+ | 'exists'
39
+ | 'extensible'
40
+ | 'fail'
41
+ | 'frozen'
42
+ | 'hasAllDeepKeys'
43
+ | 'hasAllKeys'
44
+ | 'hasAnyDeepKeys'
45
+ | 'hasAnyKeys'
46
+ | 'ifError'
47
+ | 'include'
48
+ | 'includeDeepMembers'
49
+ | 'includeDeepOrderedMembers'
50
+ | 'includeMembers'
51
+ | 'includeOrderedMembers'
52
+ | 'increases'
53
+ | 'increasesButNotBy'
54
+ | 'increasesBy'
55
+ | 'instanceOf'
56
+ | 'isAbove'
57
+ | 'isArray'
58
+ | 'isAtLeast'
59
+ | 'isAtMost'
60
+ | 'isBelow'
61
+ | 'isBoolean'
62
+ | 'isDefined'
63
+ | 'isEmpty'
64
+ | 'isExtensible'
65
+ | 'isFalse'
66
+ | 'isFinite'
67
+ | 'isFrozen'
68
+ | 'isFunction'
69
+ | 'isNaN'
70
+ | 'isNotArray'
71
+ | 'isNotBoolean'
72
+ | 'isNotEmpty'
73
+ | 'isNotExtensible'
74
+ | 'isNotFalse'
75
+ | 'isNotFrozen'
76
+ | 'isNotFunction'
77
+ | 'isNotNaN'
78
+ | 'isNotNull'
79
+ | 'isNotNumber'
80
+ | 'isNotObject'
81
+ | 'isNotOk' // remove
82
+ | 'isNotSealed'
83
+ | 'isNotString'
84
+ | 'isNotTrue'
85
+ | 'isNull'
86
+ | 'isNumber'
87
+ | 'isObject'
88
+ | 'isOk' // remove
89
+ | 'isSealed'
90
+ | 'isString'
91
+ | 'isTrue'
92
+ | 'isUndefined'
93
+ | 'lengthOf'
94
+ | 'match'
95
+ | 'nestedInclude'
96
+ | 'nestedProperty'
97
+ | 'nestedPropertyVal'
98
+ | 'notDeepEqual'
99
+ | 'notDeepInclude'
100
+ | 'notDeepNestedInclude'
101
+ | 'notDeepNestedPropertyVal'
102
+ | 'notDeepOwnInclude'
103
+ | 'notDeepProperty'
104
+ | 'notDeepPropertyVal'
105
+ | 'notEqual' // remove
106
+ | 'notExists'
107
+ | 'notExtensible'
108
+ | 'notFrozen'
109
+ | 'notInclude'
110
+ | 'notIncludeDeepMembers'
111
+ | 'notIncludeDeepOrderedMembers'
112
+ | 'notIncludeMembers'
113
+ | 'notIncludeOrderedMembers'
114
+ | 'notInstanceOf'
115
+ | 'notMatch'
116
+ | 'notNestedInclude'
117
+ | 'notNestedProperty'
118
+ | 'notNestedPropertyVal'
119
+ | 'notOk' // remove
120
+ | 'notOwnInclude'
121
+ | 'notProperty'
122
+ | 'notPropertyVal'
123
+ | 'notSameDeepMembers'
124
+ | 'notSameDeepOrderedMembers'
125
+ | 'notSameOrderedMembers'
126
+ | 'notSealed'
127
+ | 'notStrictEqual'
128
+ | 'notTypeOf'
129
+ | 'ok' // remove
130
+ | 'oneOf'
131
+ | 'operator'
132
+ | 'ownInclude'
133
+ | 'property'
134
+ | 'propertyVal'
135
+ | 'sameDeepMembers'
136
+ | 'sameDeepOrderedMembers'
137
+ | 'sameMembers'
138
+ | 'sameOrderedMembers'
139
+ | 'sealed'
140
+ | 'strictEqual'
141
+ | 'throw'
142
+ | 'Throw'
143
+ | 'throws'
144
+ | 'typeOf'
145
+ >,
146
+ never
147
+ >('=');
@@ -1,9 +1,11 @@
1
1
  import parser from '@typescript-eslint/parser';
2
2
  import { RuleTester } from '@typescript-eslint/rule-tester';
3
- import { preferAssertNotOkOverAssertIsNotOkRule } from './prefer-assert-not-ok-over-assert-is-not-ok.mjs';
4
- import { preferAssertNotOkOverExpectFalseRule } from './prefer-assert-not-ok-over-expect-false.mjs';
5
- import { preferAssertOverAssertOkRule } from './prefer-assert-over-assert-ok.mjs';
6
- import { preferAssertOverExpectTrueRule } from './prefer-assert-over-expect-true.mjs';
3
+ import { preferAssertDeepStrictEqualOverDeepEqualRule } from './prefer-assert-deep-strict-equal-over-deep-equal.mjs';
4
+ import { preferAssertIsFalseOverNegatedAssertIsTrueRule } from './prefer-assert-is-false-over-assert-negation.mjs';
5
+ import { preferAssertIsFalseOverAssertNotOkRule } from './prefer-assert-is-false-over-assert-not-ok.mjs';
6
+ import { preferAssertIsFalseOverExpectFalseRule } from './prefer-assert-is-false-over-expect-false.mjs';
7
+ import { preferAssertIsTrueOverAssertRule } from './prefer-assert-is-true-over-assert.mjs';
8
+ import { preferAssertIsTrueOverExpectTrueRule } from './prefer-assert-is-true-over-expect-true.mjs';
7
9
 
8
10
  const ruleTester = new RuleTester({
9
11
  languageOptions: {
@@ -16,27 +18,31 @@ const ruleTester = new RuleTester({
16
18
  });
17
19
 
18
20
  ruleTester.run(
19
- 'prefer-assert-not-ok-over-expect-false',
20
- preferAssertNotOkOverExpectFalseRule,
21
+ 'prefer-assert-deep-strict-equal-over-deep-equal',
22
+ preferAssertDeepStrictEqualOverDeepEqualRule,
21
23
  {
22
24
  valid: [
23
- { code: 'assert.notOk(0);' },
24
- { code: 'expect(0).toBe(true);' },
25
- { code: 'expect(0).toEqual(false);' },
25
+ { code: 'assert.deepStrictEqual(a, b);' },
26
+ { code: 'foo.deepEqual(a, b);' },
26
27
  ],
27
28
  invalid: [
28
29
  {
29
- code: 'expect(Array.isArray({})).toBe(false);',
30
- output: 'assert.notOk(Array.isArray({}));',
31
- errors: [{ messageId: 'preferAssertNotOkOverExpectFalse' }],
30
+ code: 'assert.deepEqual(a, b, "message");',
31
+ output: 'assert.deepStrictEqual(a, b, "message");',
32
+ errors: [{ messageId: 'preferAssertDeepStrictEqual' }],
33
+ },
34
+ {
35
+ code: 'assert.deepEqual(a, b);',
36
+ output: 'assert.deepStrictEqual(a, b);',
37
+ errors: [{ messageId: 'preferAssertDeepStrictEqual' }],
32
38
  },
33
39
  ],
34
40
  },
35
41
  );
36
42
 
37
43
  ruleTester.run(
38
- 'prefer-assert-over-expect-true',
39
- preferAssertOverExpectTrueRule,
44
+ 'prefer-assert-is-over-expect-true',
45
+ preferAssertIsTrueOverExpectTrueRule,
40
46
  {
41
47
  valid: [
42
48
  { code: 'assert(0);' },
@@ -48,48 +54,120 @@ ruleTester.run(
48
54
  invalid: [
49
55
  {
50
56
  code: 'expect(Array.isArray([{}])).toBe(true);',
51
- output: 'assert(Array.isArray([{}]));',
52
- errors: [{ messageId: 'preferAssertOverExpectTrue' }],
57
+ output: 'assert.isTrue(Array.isArray([{}]));',
58
+ errors: [{ messageId: 'preferAssertIsTrueOverExpectTrue' }],
53
59
  },
54
60
  ],
55
61
  },
56
62
  );
57
63
 
58
- ruleTester.run('prefer-assert-over-assert-ok', preferAssertOverAssertOkRule, {
59
- valid: [
60
- { code: 'assert(0);' },
61
- { code: 'assert.notOk(0);' },
62
- { code: 'foo.ok(0);' },
63
- ],
64
- invalid: [
65
- {
66
- code: 'assert.ok(Array.isArray([]));',
67
- output: 'assert(Array.isArray([]));',
68
- errors: [{ messageId: 'preferAssertOverAssertOk' }],
69
- },
70
- {
71
- code: 'assert.isOk(Array.isArray([]));',
72
- output: 'assert(Array.isArray([]));',
73
- errors: [{ messageId: 'preferAssertOverAssertOk' }],
74
- },
75
- ],
76
- });
64
+ ruleTester.run(
65
+ 'prefer-assert-is-false-over-expect-false',
66
+ preferAssertIsFalseOverExpectFalseRule,
67
+ {
68
+ valid: [
69
+ { code: 'assert.notOk(0);' },
70
+ { code: 'expect(0).toBe(true);' },
71
+ { code: 'expect(0).toEqual(false);' },
72
+ ],
73
+ invalid: [
74
+ {
75
+ code: 'expect(Array.isArray({})).toBe(false);',
76
+ output: 'assert.isFalse(Array.isArray({}));',
77
+ errors: [{ messageId: 'preferAssertIsFalseOverExpectFalse' }],
78
+ },
79
+ ],
80
+ },
81
+ );
77
82
 
78
83
  ruleTester.run(
79
- 'prefer-assert-not-ok-over-assert-is-not-ok',
80
- preferAssertNotOkOverAssertIsNotOkRule,
84
+ 'prefer-assert-is-true-over-assert',
85
+ preferAssertIsTrueOverAssertRule,
81
86
  {
82
87
  valid: [
83
- { code: 'assert(0);' },
88
+ { code: 'assert.isTrue(0);' },
84
89
  { code: 'assert.notOk(0);' },
90
+ { code: 'foo.ok(0);' },
91
+ ],
92
+ invalid: [
93
+ {
94
+ code: 'assert.isOk(Array.isArray([]));',
95
+ output: 'assert.isTrue(Array.isArray([]));',
96
+ errors: [{ messageId: 'preferAssertIsTrueOverAssert' }],
97
+ },
98
+ {
99
+ code: 'assert.ok(Array.isArray([]));',
100
+ output: 'assert.isTrue(Array.isArray([]));',
101
+ errors: [{ messageId: 'preferAssertIsTrueOverAssert' }],
102
+ },
103
+ {
104
+ code: 'assert(Array.isArray([]));',
105
+ output: 'assert.isTrue(Array.isArray([]));',
106
+ errors: [{ messageId: 'preferAssertIsTrueOverAssert' }],
107
+ },
108
+ ],
109
+ },
110
+ );
111
+
112
+ ruleTester.run(
113
+ 'prefer-assert-is-false-over-assert-is-not-ok',
114
+ preferAssertIsFalseOverAssertNotOkRule,
115
+ {
116
+ valid: [
117
+ { code: 'assert(0);' },
118
+ { code: 'assert.isFalse(0);' },
85
119
  { code: 'foo.isNotOk(0);' },
86
120
  ],
87
121
  invalid: [
88
122
  {
89
123
  code: 'assert.isNotOk(Array.isArray([]));',
90
- output: 'assert.notOk(Array.isArray([]));',
91
- errors: [{ messageId: 'preferAssertOverAssertNotOk' }],
124
+ output: 'assert.isFalse(Array.isArray([]));',
125
+ errors: [{ messageId: 'preferAssertIsFalseOverAssertNotOk' }],
126
+ },
127
+ {
128
+ code: 'assert.notOk(Array.isArray([]));',
129
+ output: 'assert.isFalse(Array.isArray([]));',
130
+ errors: [{ messageId: 'preferAssertIsFalseOverAssertNotOk' }],
92
131
  },
93
132
  ],
94
133
  },
95
134
  );
135
+
136
+ ruleTester.run(
137
+ 'prefer-assert-is-false-over-negated-assert-is-true',
138
+ preferAssertIsFalseOverNegatedAssertIsTrueRule,
139
+ {
140
+ valid: [
141
+ { code: 'assert.notOk(foo);' },
142
+ { code: 'assert(!foo, );' },
143
+ { code: 'expect(!foo).toBeTruthy();' },
144
+ { code: 'assert(foo);' },
145
+ ],
146
+ invalid: [
147
+ {
148
+ code: 'assert.isTrue(!foo);',
149
+ output: 'assert.isFalse(foo);',
150
+ errors: [{ messageId: 'preferAssertIsFalseOverAssertNegation' }],
151
+ },
152
+ {
153
+ code: 'assert.isTrue(!condition());',
154
+ output: 'assert.isFalse(condition());',
155
+ errors: [{ messageId: 'preferAssertIsFalseOverAssertNegation' }],
156
+ },
157
+ ],
158
+ },
159
+ );
160
+
161
+ describe('chai API', () => {
162
+ test('assert truthy', () => {
163
+ // @ts-expect-error truthy value is ok
164
+ // eslint-disable-next-line vitest-coding-style/prefer-assert-is-true-over-assert, total-functions/no-unsafe-type-assertion, @typescript-eslint/no-unsafe-call
165
+ assert.isOk(1 as unknown as boolean);
166
+
167
+ assert.isTrue(true);
168
+
169
+ // @ts-expect-error truthy value is ok
170
+ // eslint-disable-next-line vitest-coding-style/prefer-assert-is-true-over-assert, total-functions/no-unsafe-type-assertion
171
+ assert(1 as unknown as boolean);
172
+ });
173
+ });
@@ -1,23 +1,23 @@
1
1
  import { AST_NODE_TYPES, type TSESLint } from '@typescript-eslint/utils';
2
2
 
3
- type MessageIds = 'preferAssertOverAssertOk';
3
+ type MessageIds = 'preferAssertDeepStrictEqual';
4
4
 
5
5
  type Options = readonly [];
6
6
 
7
- export const preferAssertOverAssertOkRule: TSESLint.RuleModule<
7
+ export const preferAssertDeepStrictEqualOverDeepEqualRule: TSESLint.RuleModule<
8
8
  MessageIds,
9
9
  Options
10
10
  > = {
11
11
  meta: {
12
12
  type: 'suggestion',
13
13
  docs: {
14
- description: 'Prefer assert(X) over assert.ok(X), assert.isOk(X).',
14
+ description: 'Prefer assert.deepStrictEqual(X) over assert.deepEqual(X).',
15
15
  },
16
16
  fixable: 'code',
17
17
  schema: [],
18
18
  messages: {
19
- preferAssertOverAssertOk:
20
- 'Use assert(X) instead of assert.ok(X), assert.isOk(X).',
19
+ preferAssertDeepStrictEqual:
20
+ 'Use assert.deepStrictEqual(X) instead of assert.deepEqual(X).',
21
21
  },
22
22
  },
23
23
  defaultOptions: [],
@@ -27,14 +27,14 @@ export const preferAssertOverAssertOkRule: TSESLint.RuleModule<
27
27
  node.object.type === AST_NODE_TYPES.Identifier &&
28
28
  node.object.name === 'assert' &&
29
29
  node.property.type === AST_NODE_TYPES.Identifier &&
30
- (node.property.name === 'ok' || node.property.name === 'isOk') &&
30
+ node.property.name === 'deepEqual' &&
31
31
  node.parent.type === AST_NODE_TYPES.CallExpression &&
32
32
  node.parent.callee === node
33
33
  ) {
34
34
  context.report({
35
35
  node,
36
- messageId: 'preferAssertOverAssertOk',
37
- fix: (fixer) => fixer.replaceText(node, 'assert'),
36
+ messageId: 'preferAssertDeepStrictEqual',
37
+ fix: (fixer) => fixer.replaceText(node, 'assert.deepStrictEqual'),
38
38
  });
39
39
  }
40
40
  },