Skip to content

Commit 904996d

Browse files
G-RathSimenB
authored andcommitted
chore(everything-else): convert everything else to typescript
1 parent 6a75f24 commit 904996d

29 files changed

+1314
-906
lines changed

babel.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use strict';
22

3+
// todo: https://github.com/babel/babel/issues/8529 :'(
34
module.exports = {
45
plugins: ['replace-ts-export-assignment'],
56
presets: [

src/rules/__tests__/no-alias-methods.test.js renamed to src/rules/__tests__/no-alias-methods.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { RuleTester } from 'eslint';
1+
import { TSESLint } from '@typescript-eslint/experimental-utils';
22
import rule from '../no-alias-methods';
33

4-
const ruleTester = new RuleTester();
4+
const ruleTester = new TSESLint.RuleTester();
55

66
ruleTester.run('no-alias-methods', rule, {
77
valid: [

src/rules/__tests__/no-truthy-falsy.test.js renamed to src/rules/__tests__/no-truthy-falsy.test.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { RuleTester } from 'eslint';
1+
import { TSESLint } from '@typescript-eslint/experimental-utils';
22
import rule from '../no-truthy-falsy';
33

4-
const ruleTester = new RuleTester();
4+
const ruleTester = new TSESLint.RuleTester();
55

66
ruleTester.run('no-truthy-falsy', rule, {
77
valid: [
@@ -28,6 +28,17 @@ ruleTester.run('no-truthy-falsy', rule, {
2828
},
2929
],
3030
},
31+
{
32+
code: 'expect(true)["toBeTruthy"]();',
33+
errors: [
34+
{
35+
messageId: 'avoidMessage',
36+
data: { methodName: 'toBeTruthy' },
37+
column: 14,
38+
line: 1,
39+
},
40+
],
41+
},
3142
{
3243
code: 'expect(false).not.toBeTruthy();',
3344
errors: [

src/rules/__tests__/prefer-called-with.test.js renamed to src/rules/__tests__/prefer-called-with.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { RuleTester } from 'eslint';
1+
import { TSESLint } from '@typescript-eslint/experimental-utils';
22
import rule from '../prefer-called-with';
33

4-
const ruleTester = new RuleTester();
4+
const ruleTester = new TSESLint.RuleTester();
55

66
ruleTester.run('prefer-called-with', rule, {
77
valid: [

src/rules/__tests__/prefer-to-be-null.test.js renamed to src/rules/__tests__/prefer-to-be-null.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { RuleTester } from 'eslint';
1+
import { TSESLint } from '@typescript-eslint/experimental-utils';
22
import rule from '../prefer-to-be-null';
33

4-
const ruleTester = new RuleTester();
4+
const ruleTester = new TSESLint.RuleTester();
55

66
ruleTester.run('prefer-to-be-null', rule, {
77
valid: [

src/rules/__tests__/prefer-to-be-undefined.test.js renamed to src/rules/__tests__/prefer-to-be-undefined.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { RuleTester } from 'eslint';
1+
import { TSESLint } from '@typescript-eslint/experimental-utils';
22
import rule from '../prefer-to-be-undefined';
33

4-
const ruleTester = new RuleTester();
4+
const ruleTester = new TSESLint.RuleTester();
55

66
ruleTester.run('prefer-to-be-undefined', rule, {
77
valid: [

src/rules/__tests__/prefer-to-contain.test.js renamed to src/rules/__tests__/prefer-to-contain.test.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { RuleTester } from 'eslint';
1+
import { TSESLint } from '@typescript-eslint/experimental-utils';
22
import rule from '../prefer-to-contain';
33

4-
const ruleTester = new RuleTester();
4+
const ruleTester = new TSESLint.RuleTester();
55

66
ruleTester.run('prefer-to-contain', rule, {
77
valid: [
@@ -31,6 +31,12 @@ ruleTester.run('prefer-to-contain', rule, {
3131
errors: [{ messageId: 'useToContain', column: 23, line: 1 }],
3232
output: 'expect(a).toContain(b);',
3333
},
34+
// todo: support this, as it's counted by isSupportedAccessor
35+
// {
36+
// code: "expect(a['includes'](b)).toEqual(true);",
37+
// errors: [{ messageId: 'useToContain', column: 23, line: 1 }],
38+
// output: 'expect(a).toContain(b);',
39+
// },
3440
{
3541
code: 'expect(a.includes(b)).toEqual(false);',
3642
errors: [{ messageId: 'useToContain', column: 23, line: 1 }],

src/rules/__tests__/prefer-to-have-length.test.js renamed to src/rules/__tests__/prefer-to-have-length.test.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
1-
import { RuleTester } from 'eslint';
1+
import { TSESLint } from '@typescript-eslint/experimental-utils';
22
import rule from '../prefer-to-have-length';
33

4-
const ruleTester = new RuleTester();
4+
const ruleTester = new TSESLint.RuleTester({
5+
parserOptions: {
6+
ecmaVersion: 2015,
7+
},
8+
});
59

610
ruleTester.run('prefer-to-have-length', rule, {
711
valid: [
812
'expect(files).toHaveLength(1);',
913
"expect(files.name).toBe('file');",
14+
"expect(files[`name`]).toBe('file');",
1015
'expect(result).toBe(true);',
1116
`expect(user.getUserName(5)).resolves.toEqual('Paul')`,
1217
`expect(user.getUserName(5)).rejects.toEqual('Paul')`,
1318
'expect(a);',
19+
'expect(files["length"]).toBe(1);',
1420
],
1521

1622
invalid: [
23+
// todo: support this
24+
// {
25+
// code: 'expect(files["length"]).toBe(1);',
26+
// errors: [{ messageId: 'useToHaveLength', column: 22, line: 1 }],
27+
// output: 'expect(files).toHaveLength(1);',
28+
// },
1729
{
1830
code: 'expect(files.length).toBe(1);',
1931
errors: [{ messageId: 'useToHaveLength', column: 22, line: 1 }],

src/rules/__tests__/require-tothrow-message.test.js renamed to src/rules/__tests__/require-tothrow-message.test.ts

Lines changed: 46 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { RuleTester } from 'eslint';
1+
import { TSESLint } from '@typescript-eslint/experimental-utils';
22
import rule from '../require-tothrow-message';
33

4-
const ruleTester = new RuleTester({
4+
const ruleTester = new TSESLint.RuleTester({
55
parserOptions: {
66
ecmaVersion: 8,
77
},
@@ -12,55 +12,74 @@ ruleTester.run('require-tothrow-message', rule, {
1212
// String
1313
"expect(() => { throw new Error('a'); }).toThrow('a');",
1414
"expect(() => { throw new Error('a'); }).toThrowError('a');",
15-
`test('string', async () => {
15+
`
16+
test('string', async () => {
1617
const throwErrorAsync = async () => { throw new Error('a') };
1718
await expect(throwErrorAsync()).rejects.toThrow('a');
1819
await expect(throwErrorAsync()).rejects.toThrowError('a');
19-
})`,
20+
})
21+
`,
2022

2123
// Template literal
2224
"const a = 'a'; expect(() => { throw new Error('a'); }).toThrow(`${a}`);",
2325
"const a = 'a'; expect(() => { throw new Error('a'); }).toThrowError(`${a}`);",
24-
`test('Template literal', async () => {
26+
`
27+
test('Template literal', async () => {
2528
const a = 'a';
2629
const throwErrorAsync = async () => { throw new Error('a') };
2730
await expect(throwErrorAsync()).rejects.toThrow(\`\${a}\`);
2831
await expect(throwErrorAsync()).rejects.toThrowError(\`\${a}\`);
29-
})`,
32+
})
33+
`,
3034

3135
// Regex
3236
"expect(() => { throw new Error('a'); }).toThrow(/^a$/);",
3337
"expect(() => { throw new Error('a'); }).toThrowError(/^a$/);",
34-
`test('Regex', async () => {
38+
`
39+
test('Regex', async () => {
3540
const throwErrorAsync = async () => { throw new Error('a') };
3641
await expect(throwErrorAsync()).rejects.toThrow(/^a$/);
3742
await expect(throwErrorAsync()).rejects.toThrowError(/^a$/);
38-
})`,
43+
})
44+
`,
3945

4046
// Function
41-
"expect(() => { throw new Error('a'); })" +
42-
".toThrow((() => { return 'a'; })());",
43-
"expect(() => { throw new Error('a'); })" +
44-
".toThrowError((() => { return 'a'; })());",
45-
`test('Function', async () => {
47+
"expect(() => { throw new Error('a'); }).toThrow((() => { return 'a'; })());",
48+
"expect(() => { throw new Error('a'); }).toThrowError((() => { return 'a'; })());",
49+
`
50+
test('Function', async () => {
4651
const throwErrorAsync = async () => { throw new Error('a') };
4752
const fn = () => { return 'a'; };
4853
await expect(throwErrorAsync()).rejects.toThrow(fn());
4954
await expect(throwErrorAsync()).rejects.toThrowError(fn());
50-
})`,
55+
})
56+
`,
5157

5258
// Allow no message for `not`.
5359
"expect(() => { throw new Error('a'); }).not.toThrow();",
5460
"expect(() => { throw new Error('a'); }).not.toThrowError();",
55-
`test('Allow no message for "not"', async () => {
61+
`
62+
test('Allow no message for "not"', async () => {
5663
const throwErrorAsync = async () => { throw new Error('a') };
5764
await expect(throwErrorAsync()).resolves.not.toThrow();
5865
await expect(throwErrorAsync()).resolves.not.toThrowError();
59-
})`,
66+
})
67+
`,
6068
'expect(a);',
6169
],
6270

6371
invalid: [
72+
{
73+
code: "expect(() => { throw new Error('a'); })[`toThrow`]();",
74+
errors: [
75+
{
76+
messageId: 'requireRethrow',
77+
data: { propertyName: 'toThrow' },
78+
column: 41,
79+
line: 1,
80+
},
81+
],
82+
},
6483
// Empty toThrow
6584
{
6685
code: "expect(() => { throw new Error('a'); }).toThrow();",
@@ -88,23 +107,25 @@ ruleTester.run('require-tothrow-message', rule, {
88107

89108
// Empty rejects.toThrow / rejects.toThrowError
90109
{
91-
code: `test('empty rejects.toThrow', async () => {
92-
const throwErrorAsync = async () => { throw new Error('a') };
93-
await expect(throwErrorAsync()).rejects.toThrow();
94-
await expect(throwErrorAsync()).rejects.toThrowError();
95-
})`,
110+
code: `
111+
test('empty rejects.toThrow', async () => {
112+
const throwErrorAsync = async () => { throw new Error('a') };
113+
await expect(throwErrorAsync()).rejects.toThrow();
114+
await expect(throwErrorAsync()).rejects.toThrowError();
115+
})
116+
`,
96117
errors: [
97118
{
98119
messageId: 'requireRethrow',
99120
data: { propertyName: 'toThrow' },
100-
column: 49,
101-
line: 3,
121+
column: 51,
122+
line: 4,
102123
},
103124
{
104125
messageId: 'requireRethrow',
105126
data: { propertyName: 'toThrowError' },
106-
column: 49,
107-
line: 4,
127+
column: 51,
128+
line: 5,
108129
},
109130
],
110131
},

0 commit comments

Comments
 (0)