@@ -74,6 +74,35 @@ ruleTester.run('valid-expect', rule, {
7474 return expect(functionReturningAPromise()).resolves.toEqual(1).then(() => expect(Promise.resolve(2)).resolves.toBe(1));
7575 });
7676 ` ,
77+ dedent `
78+ expect.extend({
79+ toResolve(obj) {
80+ return this.isNot
81+ ? expect(obj).toBe(true)
82+ : expect(obj).resolves.not.toThrow();
83+ }
84+ });
85+ ` ,
86+ dedent `
87+ expect.extend({
88+ toResolve(obj) {
89+ return this.isNot
90+ ? expect(obj).resolves.not.toThrow()
91+ : expect(obj).toBe(true);
92+ }
93+ });
94+ ` ,
95+ dedent `
96+ expect.extend({
97+ toResolve(obj) {
98+ return this.isNot
99+ ? expect(obj).toBe(true)
100+ : anotherCondition
101+ ? expect(obj).resolves.not.toThrow()
102+ : expect(obj).toBe(false)
103+ }
104+ });
105+ ` ,
77106 {
78107 code : 'expect(1).toBe(2);' ,
79108 options : [ { maxArgs : 2 } ] ,
@@ -369,6 +398,63 @@ ruleTester.run('valid-expect', rule, {
369398 ] ,
370399 } ,
371400
401+ {
402+ code : dedent `
403+ expect.extend({
404+ toResolve(obj) {
405+ this.isNot
406+ ? expect(obj).toBe(true)
407+ : expect(obj).resolves.not.toThrow();
408+ }
409+ });
410+ ` ,
411+ errors : [
412+ {
413+ column : 9 ,
414+ endColumn : 43 ,
415+ messageId : 'asyncMustBeAwaited' ,
416+ } ,
417+ ] ,
418+ } ,
419+ {
420+ code : dedent `
421+ expect.extend({
422+ toResolve(obj) {
423+ this.isNot
424+ ? expect(obj).resolves.not.toThrow()
425+ : expect(obj).toBe(true);
426+ }
427+ });
428+ ` ,
429+ errors : [
430+ {
431+ column : 9 ,
432+ endColumn : 43 ,
433+ messageId : 'asyncMustBeAwaited' ,
434+ } ,
435+ ] ,
436+ } ,
437+ {
438+ code : dedent `
439+ expect.extend({
440+ toResolve(obj) {
441+ this.isNot
442+ ? expect(obj).toBe(true)
443+ : anotherCondition
444+ ? expect(obj).resolves.not.toThrow()
445+ : expect(obj).toBe(false)
446+ }
447+ });
448+ ` ,
449+ errors : [
450+ {
451+ column : 9 ,
452+ endColumn : 43 ,
453+ messageId : 'asyncMustBeAwaited' ,
454+ } ,
455+ ] ,
456+ } ,
457+
372458 // expect().resolves
373459 {
374460 code :
0 commit comments