Skip to content

Commit 953328f

Browse files
committed
fixup
1 parent 7b10fc8 commit 953328f

File tree

3 files changed

+27
-15
lines changed

3 files changed

+27
-15
lines changed

docs/rules/prefer-t-throws.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,15 @@ test('some test', async t => {
8282
}
8383
});
8484
```
85+
86+
```js
87+
test('some test', async t => {
88+
try {
89+
myFunction();
90+
return;
91+
t.fail();
92+
} catch (error) {
93+
t.is(error.message, 'Unicorn overload');
94+
}
95+
});
96+
```

rules/prefer-t-throws.js

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const util = require('../util');
66

77
function hasAwaitExpression(nodes) {
88
if (!nodes) {
9-
return false
9+
return false;
1010
}
1111

1212
for (const node of nodes) {
@@ -24,10 +24,10 @@ function hasAwaitExpression(nodes) {
2424

2525
// Make the rule passes if a return statement is found.
2626
if (node.type === 'ReturnStatement') {
27+
// eslint-disable-next-line no-throw-literal
2728
throw undefined;
2829
}
2930

30-
3131
if (node.expressions && hasAwaitExpression(node.expressions)) {
3232
return true;
3333
}
@@ -37,7 +37,7 @@ function hasAwaitExpression(nodes) {
3737
}
3838

3939
if (node.type === 'MemberExpression' && hasAwaitExpression([node.object, node.property])) {
40-
return true
40+
return true;
4141
}
4242

4343
if ((node.type === 'CallExpression' || node.type === 'NewExpression')
@@ -66,9 +66,9 @@ function hasAwaitExpression(nodes) {
6666
return true;
6767
}
6868

69-
if (node.type === 'SwitchStatement' && hasAwaitExpression([node.discriminant, ...node.cases.flatMap(caseNode => {
70-
return [caseNode.test].concat(caseNode.consequent);
71-
})])) {
69+
if (node.type === 'SwitchStatement'
70+
// eslint-disable-next-line unicorn/prefer-spread
71+
&& hasAwaitExpression([node.discriminant, ...node.cases.flatMap(caseNode => [caseNode.test].concat(caseNode.consequent))])) {
7272
return true;
7373
}
7474

@@ -109,14 +109,13 @@ const create = context => {
109109
return;
110110
}
111111

112-
const tFailIndex = [...nodes].reverse().findIndex(node => {
113-
return node.type === 'ExpressionStatement'
114-
&& node.expression.type === 'CallExpression'
115-
&& node.expression.callee.object
116-
&& node.expression.callee.object.name === 't'
117-
&& node.expression.callee.property
118-
&& node.expression.callee.property.name === 'fail';
119-
});
112+
const tFailIndex = [...nodes].reverse().findIndex(node => node.type === 'ExpressionStatement'
113+
&& node.expression.type === 'CallExpression'
114+
&& node.expression.callee.object
115+
&& node.expression.callee.object.name === 't'
116+
&& node.expression.callee.property
117+
&& node.expression.callee.property.name === 'fail');
118+
120119
// Return if there is no t.fail() or if it's the first node
121120
if (tFailIndex === -1 || tFailIndex === nodes.length - 1) {
122121
return;

test/prefer-t-throws.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ ruleTester.run('prefer-t-throws', rule, {
1717
`${header}test(async t => { const error = await t.throwsAsync(promise); t.is(error, 'error'); });`,
1818
`${header}test(t => { const error = t.throws(fn()); t.is(error, 'error'); });`,
1919
`${header}test(async t => { try { t.fail(); unicorn(); } catch (error) { t.is(error, 'error'); } });`,
20+
`${header}test(async t => { try { unicorn(); return; t.fail(); } catch (error) { t.is(error, 'error'); } });`,
2021
`${header}test(async t => { try { await promise; } catch (error) { t.is(error, 'error'); } });`,
2122
],
2223
invalid: [
2324
{
24-
code: `${header}test(async t => { try { async function unicorn() { throw await Promise.resolve('error') }; unicorn(); t.fail(); } catch (error) { t.is(error, 'error'); } });`,
25+
code: `${header}test(async t => { try { async function unicorn() { throw await Promise.resolve('error') }; unicorn(); t.fail(); } catch (error) { t.is(error, 'error'); } });`,
2526
errors: [{message: 'Prefer using the `t.throws()` assertion.'}],
2627
},
2728
{

0 commit comments

Comments
 (0)