File tree Expand file tree Collapse file tree 6 files changed +567
-1
lines changed Expand file tree Collapse file tree 6 files changed +567
-1
lines changed Original file line number Diff line number Diff line change @@ -232,6 +232,7 @@ installations requiring long-term consistency.
232232| [ prefer-hooks-in-order] ( docs/rules/prefer-hooks-in-order.md ) | Prefer having hooks in a consistent order | | |
233233| [ prefer-hooks-on-top] ( docs/rules/prefer-hooks-on-top.md ) | Suggest having hooks before any test cases | | |
234234| [ prefer-lowercase-title] ( docs/rules/prefer-lowercase-title.md ) | Enforce lowercase test names | | ![ fixable] [ ] |
235+ | [ prefer-mock-promise-shorthand] ( docs/rules/prefer-mock-promise-shorthand.md ) | Prefer mock resolved/rejected shorthands for promises | | ![ fixable] [ ] |
235236| [ prefer-snapshot-hint] ( docs/rules/prefer-snapshot-hint.md ) | Prefer including a hint with external snapshots | | |
236237| [ prefer-spy-on] ( docs/rules/prefer-spy-on.md ) | Suggest using ` jest.spyOn() ` | | ![ fixable] [ ] |
237238| [ prefer-strict-equal] ( docs/rules/prefer-strict-equal.md ) | Suggest using ` toStrictEqual() ` | | ![ suggest] [ ] |
Original file line number Diff line number Diff line change 1+ # Prefer mock resolved/rejected shorthands for promises (` prefer-mock-promise-shorthand ` )
2+
3+ When working with mocks of functions that return promises, Jest provides some
4+ syntactic sugar functions to reduce the amount of boilerplate you have to write.
5+
6+ These methods should be preferred when possible.
7+
8+ ## Rule Details
9+
10+ The following patterns are warnings:
11+
12+ ``` js
13+ jest .fn ().mockImplementation (() => Promise .resolve (123 ));
14+ jest
15+ .spyOn (fs .promises , ' readFile' )
16+ .mockReturnValue (Promise .reject (new Error (' oh noes!' )));
17+
18+ myFunction
19+ .mockReturnValueOnce (Promise .resolve (42 ))
20+ .mockImplementationOnce (() => Promise .resolve (42 ))
21+ .mockReturnValue (Promise .reject (new Error (' too many calls!' )));
22+ ```
23+
24+ The following patterns are not warnings:
25+
26+ ``` js
27+ jest .fn ().mockResolvedValue (123 );
28+ jest .spyOn (fs .promises , ' readFile' ).mockRejectedValue (new Error (' oh noes!' ));
29+
30+ myFunction
31+ .mockResolvedValueOnce (42 )
32+ .mockResolvedValueOnce (42 )
33+ .mockRejectedValue (new Error (' too many calls!' ));
34+ ```
Original file line number Diff line number Diff line change @@ -43,6 +43,7 @@ Object {
4343 " jest/prefer-hooks-in-order" : " error" ,
4444 " jest/prefer-hooks-on-top" : " error" ,
4545 " jest/prefer-lowercase-title" : " error" ,
46+ " jest/prefer-mock-promise-shorthand" : " error" ,
4647 " jest/prefer-snapshot-hint" : " error" ,
4748 " jest/prefer-spy-on" : " error" ,
4849 " jest/prefer-strict-equal" : " error" ,
Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ import { existsSync } from 'fs';
22import { resolve } from 'path' ;
33import plugin from '../' ;
44
5- const numberOfRules = 49 ;
5+ const numberOfRules = 50 ;
66const ruleNames = Object . keys ( plugin . rules ) ;
77const deprecatedRules = Object . entries ( plugin . rules )
88 . filter ( ( [ , rule ] ) => rule . meta . deprecated )
You can’t perform that action at this time.
0 commit comments