@@ -416,6 +416,13 @@ ruleTester.run(RULE_NAME, rule, {
416
416
data : { name : asyncUtil } ,
417
417
} ,
418
418
] ,
419
+ output : `
420
+ import { ${ asyncUtil } } from '${ testingFramework } ';
421
+ test('${ asyncUtil } util not waited is invalid', async () => {
422
+ doSomethingElse();
423
+ await ${ asyncUtil } (() => getByLabelText('email'));
424
+ });
425
+ ` ,
419
426
} ) ) ,
420
427
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
421
428
code : `
@@ -433,6 +440,13 @@ ruleTester.run(RULE_NAME, rule, {
433
440
data : { name : asyncUtil } ,
434
441
} ,
435
442
] ,
443
+ output : `
444
+ import { ${ asyncUtil } } from '${ testingFramework } ';
445
+ test('${ asyncUtil } util not waited is invalid', async () => {
446
+ doSomethingElse();
447
+ const el = await ${ asyncUtil } (() => getByLabelText('email'));
448
+ });
449
+ ` ,
436
450
} ) ) ,
437
451
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
438
452
code : `
@@ -450,6 +464,13 @@ ruleTester.run(RULE_NAME, rule, {
450
464
data : { name : asyncUtil } ,
451
465
} ,
452
466
] ,
467
+ output : `
468
+ import * as asyncUtil from '${ testingFramework } ';
469
+ test('asyncUtil.${ asyncUtil } util not handled is invalid', async () => {
470
+ doSomethingElse();
471
+ await asyncUtil.${ asyncUtil } (() => getByLabelText('email'));
472
+ });
473
+ ` ,
453
474
} ) ) ,
454
475
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
455
476
code : `
@@ -467,6 +488,13 @@ ruleTester.run(RULE_NAME, rule, {
467
488
data : { name : asyncUtil } ,
468
489
} ,
469
490
] ,
491
+ output : `
492
+ import { ${ asyncUtil } } from '${ testingFramework } ';
493
+ test('${ asyncUtil } util promise saved not handled is invalid', async () => {
494
+ doSomethingElse();
495
+ const aPromise = await ${ asyncUtil } (() => getByLabelText('email'));
496
+ });
497
+ ` ,
470
498
} ) ) ,
471
499
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
472
500
code : `
@@ -491,6 +519,14 @@ ruleTester.run(RULE_NAME, rule, {
491
519
data : { name : asyncUtil } ,
492
520
} ,
493
521
] ,
522
+ output : `
523
+ import { ${ asyncUtil } } from '${ testingFramework } ';
524
+ test('several ${ asyncUtil } utils not handled are invalid', async () => {
525
+ const aPromise = ${ asyncUtil } (() => getByLabelText('username'));
526
+ doSomethingElse(await aPromise);
527
+ await ${ asyncUtil } (() => getByLabelText('email'));
528
+ });
529
+ ` ,
494
530
} ) ) ,
495
531
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
496
532
code : `
@@ -515,6 +551,14 @@ ruleTester.run(RULE_NAME, rule, {
515
551
data : { name : asyncUtil } ,
516
552
} ,
517
553
] ,
554
+ output : `
555
+ import { ${ asyncUtil } } from '${ testingFramework } ';
556
+ test('unhandled expression that evaluates to promise is invalid', async () => {
557
+ const aPromise = ${ asyncUtil } (() => getByLabelText('username'));
558
+ doSomethingElse(await aPromise);
559
+ await ${ asyncUtil } (() => getByLabelText('email'));
560
+ });
561
+ ` ,
518
562
} ) ) ,
519
563
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
520
564
code : `
@@ -537,6 +581,18 @@ ruleTester.run(RULE_NAME, rule, {
537
581
data : { name : 'waitForSomethingAsync' } ,
538
582
} ,
539
583
] ,
584
+ output : `
585
+ import { ${ asyncUtil } , render } from '${ testingFramework } ';
586
+
587
+ function waitForSomethingAsync() {
588
+ return ${ asyncUtil } (() => somethingAsync())
589
+ }
590
+
591
+ test('unhandled promise from function wrapping ${ asyncUtil } util is invalid', async () => {
592
+ render()
593
+ await waitForSomethingAsync()
594
+ });
595
+ ` ,
540
596
} ) ) ,
541
597
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
542
598
code : `
@@ -560,6 +616,19 @@ ruleTester.run(RULE_NAME, rule, {
560
616
data : { name : 'waitForSomethingAsync' } ,
561
617
} ,
562
618
] ,
619
+ output : `
620
+ import { ${ asyncUtil } , render } from '${ testingFramework } ';
621
+
622
+ function waitForSomethingAsync() {
623
+ return ${ asyncUtil } (() => somethingAsync())
624
+ }
625
+
626
+ test('unhandled promise in variable declaration from function wrapping ${ asyncUtil } util is invalid', async () => {
627
+ render()
628
+ const result = waitForSomethingAsync()
629
+ expect(await result).toBe('foo')
630
+ });
631
+ ` ,
563
632
} ) ) ,
564
633
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
565
634
code : `
@@ -579,6 +648,15 @@ ruleTester.run(RULE_NAME, rule, {
579
648
data : { name : asyncUtil } ,
580
649
} ,
581
650
] ,
651
+ output : `
652
+ import { ${ asyncUtil } } from 'some-other-library'; // rather than ${ testingFramework }
653
+ test(
654
+ 'aggressive reporting - util "${ asyncUtil } " which is not related to testing library is invalid',
655
+ async () => {
656
+ doSomethingElse();
657
+ await ${ asyncUtil } ();
658
+ });
659
+ ` ,
582
660
} ) ) ,
583
661
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
584
662
code : `
@@ -601,6 +679,18 @@ ruleTester.run(RULE_NAME, rule, {
601
679
data : { name : 'waitForSomethingAsync' } ,
602
680
} ,
603
681
] ,
682
+ output : `
683
+ import { ${ asyncUtil } , render } from '${ testingFramework } ';
684
+
685
+ function waitForSomethingAsync() {
686
+ return ${ asyncUtil } (() => somethingAsync())
687
+ }
688
+
689
+ test('unhandled promise from function wrapping ${ asyncUtil } util is invalid', async () => {
690
+ render()
691
+ const el = await waitForSomethingAsync()
692
+ });
693
+ ` ,
604
694
} ) ) ,
605
695
606
696
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
@@ -621,6 +711,15 @@ ruleTester.run(RULE_NAME, rule, {
621
711
data : { name : asyncUtil } ,
622
712
} ,
623
713
] ,
714
+ output : `
715
+ import * as asyncUtils from 'some-other-library'; // rather than ${ testingFramework }
716
+ test(
717
+ 'aggressive reporting - util "asyncUtils.${ asyncUtil } " which is not related to testing library is invalid',
718
+ async () => {
719
+ doSomethingElse();
720
+ await asyncUtils.${ asyncUtil } ();
721
+ });
722
+ ` ,
624
723
} ) ) ,
625
724
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
626
725
code : `
@@ -648,6 +747,23 @@ ruleTester.run(RULE_NAME, rule, {
648
747
data : { name : 'waitForAsyncUtil' } ,
649
748
} ,
650
749
] ,
750
+ output : `
751
+ // implicitly using ${ testingFramework }
752
+ function setup() {
753
+ const utils = render(<MyComponent />);
754
+
755
+ const waitForAsyncUtil = () => {
756
+ return ${ asyncUtil } (screen.queryByTestId('my-test-id'));
757
+ };
758
+
759
+ return { waitForAsyncUtil, ...utils };
760
+ }
761
+
762
+ test('unhandled promise from destructed property of async function wrapper is invalid', async () => {
763
+ const { user, waitForAsyncUtil } = setup();
764
+ await waitForAsyncUtil();
765
+ });
766
+ ` ,
651
767
} ) ) ,
652
768
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
653
769
code : `
@@ -676,6 +792,24 @@ ruleTester.run(RULE_NAME, rule, {
676
792
data : { name : 'myAlias' } ,
677
793
} ,
678
794
] ,
795
+ output : `
796
+ // implicitly using ${ testingFramework }
797
+ function setup() {
798
+ const utils = render(<MyComponent />);
799
+
800
+ const waitForAsyncUtil = () => {
801
+ return ${ asyncUtil } (screen.queryByTestId('my-test-id'));
802
+ };
803
+
804
+ return { waitForAsyncUtil, ...utils };
805
+ }
806
+
807
+ test('unhandled promise from destructed property of async function wrapper is invalid', async () => {
808
+ const { user, waitForAsyncUtil } = setup();
809
+ const myAlias = waitForAsyncUtil;
810
+ await myAlias();
811
+ });
812
+ ` ,
679
813
} ) ) ,
680
814
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
681
815
code : `
@@ -703,6 +837,23 @@ ruleTester.run(RULE_NAME, rule, {
703
837
data : { name : 'waitForAsyncUtil' } ,
704
838
} ,
705
839
] ,
840
+ output : `
841
+ // implicitly using ${ testingFramework }
842
+ function setup() {
843
+ const utils = render(<MyComponent />);
844
+
845
+ const waitForAsyncUtil = () => {
846
+ return ${ asyncUtil } (screen.queryByTestId('my-test-id'));
847
+ };
848
+
849
+ return { waitForAsyncUtil, ...utils };
850
+ }
851
+
852
+ test('unhandled promise from destructed property of async function wrapper is invalid', async () => {
853
+ const { ...clone } = setup();
854
+ await clone.waitForAsyncUtil();
855
+ });
856
+ ` ,
706
857
} ) ) ,
707
858
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
708
859
code : `
@@ -730,6 +881,23 @@ ruleTester.run(RULE_NAME, rule, {
730
881
data : { name : 'myAlias' } ,
731
882
} ,
732
883
] ,
884
+ output : `
885
+ // implicitly using ${ testingFramework }
886
+ function setup() {
887
+ const utils = render(<MyComponent />);
888
+
889
+ const waitForAsyncUtil = () => {
890
+ return ${ asyncUtil } (screen.queryByTestId('my-test-id'));
891
+ };
892
+
893
+ return { waitForAsyncUtil, ...utils };
894
+ }
895
+
896
+ test('unhandled promise from destructed property of async function wrapper is invalid', async () => {
897
+ const { waitForAsyncUtil: myAlias } = setup();
898
+ await myAlias();
899
+ });
900
+ ` ,
733
901
} ) ) ,
734
902
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
735
903
code : `
@@ -756,6 +924,22 @@ ruleTester.run(RULE_NAME, rule, {
756
924
data : { name : 'waitForAsyncUtil' } ,
757
925
} ,
758
926
] ,
927
+ output : `
928
+ // implicitly using ${ testingFramework }
929
+ function setup() {
930
+ const utils = render(<MyComponent />);
931
+
932
+ const waitForAsyncUtil = () => {
933
+ return ${ asyncUtil } (screen.queryByTestId('my-test-id'));
934
+ };
935
+
936
+ return { waitForAsyncUtil, ...utils };
937
+ }
938
+
939
+ test('unhandled promise from destructed property of async function wrapper is invalid', async () => {
940
+ await setup().waitForAsyncUtil();
941
+ });
942
+ ` ,
759
943
} ) ) ,
760
944
...ASYNC_UTILS . map < RuleInvalidTestCase > ( ( asyncUtil ) => ( {
761
945
code : `
@@ -783,6 +967,23 @@ ruleTester.run(RULE_NAME, rule, {
783
967
data : { name : 'myAlias' } ,
784
968
} ,
785
969
] ,
970
+ output : `
971
+ // implicitly using ${ testingFramework }
972
+ function setup() {
973
+ const utils = render(<MyComponent />);
974
+
975
+ const waitForAsyncUtil = () => {
976
+ return ${ asyncUtil } (screen.queryByTestId('my-test-id'));
977
+ };
978
+
979
+ return { waitForAsyncUtil, ...utils };
980
+ }
981
+
982
+ test('unhandled promise from destructed property of async function wrapper is invalid', async () => {
983
+ const myAlias = setup().waitForAsyncUtil;
984
+ await myAlias();
985
+ });
986
+ ` ,
786
987
} ) ) ,
787
988
] ) ,
788
989
} ) ;
0 commit comments