@@ -780,6 +780,257 @@ runRuleTester('prefer-web-first-assertions', rule, {
780
780
` ) ,
781
781
} ,
782
782
783
+ // allInnerTexts
784
+ {
785
+ code : test ( 'expect(await foo.allInnerTexts()).toBe("bar")' ) ,
786
+ errors : [
787
+ {
788
+ column : 28 ,
789
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
790
+ endColumn : 61 ,
791
+ line : 1 ,
792
+ messageId : 'useWebFirstAssertion' ,
793
+ } ,
794
+ ] ,
795
+ output : test ( 'await expect(foo).toHaveText("bar")' ) ,
796
+ } ,
797
+ {
798
+ code : test ( 'expect(await foo.allInnerTexts()).not.toBe("bar")' ) ,
799
+ errors : [
800
+ {
801
+ column : 28 ,
802
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
803
+ endColumn : 61 ,
804
+ line : 1 ,
805
+ messageId : 'useWebFirstAssertion' ,
806
+ } ,
807
+ ] ,
808
+ output : test ( 'await expect(foo).not.toHaveText("bar")' ) ,
809
+ } ,
810
+ {
811
+ code : test ( 'expect(await foo.allInnerTexts()).toEqual("bar")' ) ,
812
+ errors : [
813
+ {
814
+ column : 28 ,
815
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
816
+ endColumn : 61 ,
817
+ line : 1 ,
818
+ messageId : 'useWebFirstAssertion' ,
819
+ } ,
820
+ ] ,
821
+ output : test ( 'await expect(foo).toHaveText("bar")' ) ,
822
+ } ,
823
+ {
824
+ code : test ( 'expect.soft(await foo.allInnerTexts()).toBe("bar")' ) ,
825
+ errors : [
826
+ {
827
+ column : 28 ,
828
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
829
+ endColumn : 66 ,
830
+ line : 1 ,
831
+ messageId : 'useWebFirstAssertion' ,
832
+ } ,
833
+ ] ,
834
+ output : test ( 'await expect.soft(foo).toHaveText("bar")' ) ,
835
+ } ,
836
+ {
837
+ code : test ( 'expect["soft"](await foo.allInnerTexts()).not.toEqual("bar")' ) ,
838
+ errors : [
839
+ {
840
+ column : 28 ,
841
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
842
+ endColumn : 69 ,
843
+ line : 1 ,
844
+ messageId : 'useWebFirstAssertion' ,
845
+ } ,
846
+ ] ,
847
+ output : test ( 'await expect["soft"](foo).not.toHaveText("bar")' ) ,
848
+ } ,
849
+ {
850
+ code : test ( `
851
+ const fooLocator = page.locator('.fooClass');
852
+ const fooLocatorText = await fooLocator.allInnerTexts();
853
+ expect(fooLocatorText).toEqual('foo');
854
+ ` ) ,
855
+ errors : [
856
+ {
857
+ column : 9 ,
858
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
859
+ endColumn : 31 ,
860
+ line : 4 ,
861
+ messageId : 'useWebFirstAssertion' ,
862
+ } ,
863
+ ] ,
864
+ output : test ( `
865
+ const fooLocator = page.locator('.fooClass');
866
+ const fooLocatorText = fooLocator;
867
+ await expect(fooLocatorText).toHaveText('foo');
868
+ ` ) ,
869
+ } ,
870
+ {
871
+ code : test ( `
872
+ const fooLocator = page.locator('.fooClass');
873
+ let fooLocatorText = await fooLocator.allInnerTexts();
874
+ expect(fooLocatorText).toEqual('foo');
875
+ fooLocatorText = 'foo';
876
+ expect(fooLocatorText).toEqual('foo');
877
+ ` ) ,
878
+ errors : [
879
+ {
880
+ column : 9 ,
881
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
882
+ endColumn : 31 ,
883
+ line : 4 ,
884
+ messageId : 'useWebFirstAssertion' ,
885
+ } ,
886
+ ] ,
887
+ output : test ( `
888
+ const fooLocator = page.locator('.fooClass');
889
+ let fooLocatorText = fooLocator;
890
+ await expect(fooLocatorText).toHaveText('foo');
891
+ fooLocatorText = 'foo';
892
+ expect(fooLocatorText).toEqual('foo');
893
+ ` ) ,
894
+ } ,
895
+ {
896
+ code : test ( `
897
+ let fooLocatorText;
898
+ const fooLocator = page.locator('.fooClass');
899
+ fooLocatorText = 'Unrelated';
900
+ fooLocatorText = await fooLocator.allInnerTexts();
901
+ expect(fooLocatorText).toEqual('foo');
902
+ ` ) ,
903
+ errors : [
904
+ {
905
+ column : 9 ,
906
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
907
+ endColumn : 31 ,
908
+ line : 6 ,
909
+ messageId : 'useWebFirstAssertion' ,
910
+ } ,
911
+ ] ,
912
+ output : test ( `
913
+ let fooLocatorText;
914
+ const fooLocator = page.locator('.fooClass');
915
+ fooLocatorText = 'Unrelated';
916
+ fooLocatorText = fooLocator;
917
+ await expect(fooLocatorText).toHaveText('foo');
918
+ ` ) ,
919
+ } ,
920
+ {
921
+ code : test ( `
922
+ let fooLocatorText;
923
+ let fooLocatorText2;
924
+ const fooLocator = page.locator('.fooClass');
925
+ fooLocatorText = await fooLocator.allInnerTexts();
926
+ fooLocatorText2 = await fooLocator.allInnerTexts();
927
+ expect(fooLocatorText).toEqual('foo');
928
+ ` ) ,
929
+ errors : [
930
+ {
931
+ column : 9 ,
932
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
933
+ endColumn : 31 ,
934
+ line : 7 ,
935
+ messageId : 'useWebFirstAssertion' ,
936
+ } ,
937
+ ] ,
938
+ output : test ( `
939
+ let fooLocatorText;
940
+ let fooLocatorText2;
941
+ const fooLocator = page.locator('.fooClass');
942
+ fooLocatorText = fooLocator;
943
+ fooLocatorText2 = await fooLocator.allInnerTexts();
944
+ await expect(fooLocatorText).toHaveText('foo');
945
+ ` ) ,
946
+ } ,
947
+ {
948
+ code : test ( `
949
+ let fooLocatorText;
950
+ fooLocatorText = 'foo';
951
+ expect(fooLocatorText).toEqual('foo');
952
+ fooLocatorText = await page.locator('.fooClass').allInnerTexts();
953
+ expect(fooLocatorText).toEqual('foo');
954
+ ` ) ,
955
+ errors : [
956
+ {
957
+ column : 9 ,
958
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
959
+ endColumn : 31 ,
960
+ line : 6 ,
961
+ messageId : 'useWebFirstAssertion' ,
962
+ } ,
963
+ ] ,
964
+ output : test ( `
965
+ let fooLocatorText;
966
+ fooLocatorText = 'foo';
967
+ expect(fooLocatorText).toEqual('foo');
968
+ fooLocatorText = page.locator('.fooClass');
969
+ await expect(fooLocatorText).toHaveText('foo');
970
+ ` ) ,
971
+ } ,
972
+ {
973
+ code : test ( `
974
+ const unrelatedAssignment = "unrelated";
975
+ const fooLocatorText = await page.locator('.foo').allInnerTexts();
976
+ expect(fooLocatorText).toEqual('foo');
977
+ ` ) ,
978
+ errors : [
979
+ {
980
+ column : 9 ,
981
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
982
+ endColumn : 31 ,
983
+ line : 4 ,
984
+ messageId : 'useWebFirstAssertion' ,
985
+ } ,
986
+ ] ,
987
+ output : test ( `
988
+ const unrelatedAssignment = "unrelated";
989
+ const fooLocatorText = page.locator('.foo');
990
+ await expect(fooLocatorText).toHaveText('foo');
991
+ ` ) ,
992
+ } ,
993
+ {
994
+ code : test ( `
995
+ const locatorFoo = page.locator(".foo")
996
+ const isBarText = await locatorFoo.locator(".bar").allInnerTexts()
997
+ expect(isBarText).toBe("bar")
998
+ ` ) ,
999
+ errors : [
1000
+ {
1001
+ column : 9 ,
1002
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
1003
+ endColumn : 26 ,
1004
+ line : 4 ,
1005
+ messageId : 'useWebFirstAssertion' ,
1006
+ } ,
1007
+ ] ,
1008
+ output : test ( `
1009
+ const locatorFoo = page.locator(".foo")
1010
+ const isBarText = locatorFoo.locator(".bar")
1011
+ await expect(isBarText).toHaveText("bar")
1012
+ ` ) ,
1013
+ } ,
1014
+ {
1015
+ code : test ( `
1016
+ const content = await foo.allInnerTexts();
1017
+ expect(content).toBe("bar")
1018
+ ` ) ,
1019
+ errors : [
1020
+ {
1021
+ column : 9 ,
1022
+ data : { matcher : 'toHaveText' , method : 'allInnerTexts' } ,
1023
+ endColumn : 24 ,
1024
+ line : 3 ,
1025
+ messageId : 'useWebFirstAssertion' ,
1026
+ } ,
1027
+ ] ,
1028
+ output : test ( `
1029
+ const content = foo;
1030
+ await expect(content).toHaveText("bar")
1031
+ ` ) ,
1032
+ } ,
1033
+
783
1034
// isChecked
784
1035
{
785
1036
code : test ( 'expect(await page.locator("howdy").isChecked()).toBe(true)' ) ,
0 commit comments