Skip to content

Commit 27505b2

Browse files
committed
fix(no-await-sync-query): prevent screen sync queries from using await
First, abstract reportError function. Then, create selector for MemberExpression queries.
1 parent 494960f commit 27505b2

File tree

2 files changed

+26
-13
lines changed

2 files changed

+26
-13
lines changed

lib/rules/no-await-sync-query.js

+10-11
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,17 @@ module.exports = {
2121
},
2222

2323
create: function(context) {
24+
const reportError = node =>
25+
context.report({
26+
node,
27+
messageId: 'noAwaitSyncQuery',
28+
data: {
29+
name: node.name,
30+
},
31+
});
2432
return {
25-
[`AwaitExpression > CallExpression > Identifier[name=${SYNC_QUERIES_REGEXP}]`](
26-
node
27-
) {
28-
context.report({
29-
node,
30-
messageId: 'noAwaitSyncQuery',
31-
data: {
32-
name: node.name,
33-
},
34-
});
35-
},
33+
[`AwaitExpression > CallExpression > Identifier[name=${SYNC_QUERIES_REGEXP}]`]: reportError,
34+
[`AwaitExpression > CallExpression > MemberExpression > Identifier[name=${SYNC_QUERIES_REGEXP}]`]: reportError,
3635
};
3736
},
3837
};

tests/lib/rules/no-await-sync-query.js

+16-2
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ ruleTester.run('no-await-sync-query', rule, {
4343
})),
4444
],
4545

46-
invalid:
46+
invalid: [
4747
// sync queries with await operator are not valid
48-
SYNC_QUERIES_COMBINATIONS.map(query => ({
48+
...SYNC_QUERIES_COMBINATIONS.map(query => ({
4949
code: `async () => {
5050
await ${query}('foo')
5151
}
@@ -56,4 +56,18 @@ ruleTester.run('no-await-sync-query', rule, {
5656
},
5757
],
5858
})),
59+
60+
// sync queries in screen with await operator are not valid
61+
...SYNC_QUERIES_COMBINATIONS.map(query => ({
62+
code: `async () => {
63+
await screen.${query}('foo')
64+
}
65+
`,
66+
errors: [
67+
{
68+
messageId: 'noAwaitSyncQuery',
69+
},
70+
],
71+
})),
72+
],
5973
});

0 commit comments

Comments
 (0)