@@ -311,6 +311,19 @@ ruleTester.run(RULE_NAME, rule, {
311
311
312
312
await triggerEvent()
313
313
})
314
+ ` ,
315
+ options : [ { eventModule : 'userEvent' } ] as const ,
316
+ } ) ) ,
317
+ ...USER_EVENT_ASYNC_FUNCTIONS . map ( ( eventMethod ) => ( {
318
+ code : `
319
+ import userEvent from '${ testingFramework } '
320
+ test('await expression that evaluates to promise is valid', async () => {
321
+ await (null, userEvent.${ eventMethod } (getByLabelText('username')));
322
+ await (condition ? null : userEvent.${ eventMethod } (getByLabelText('username')));
323
+ await (condition && userEvent.${ eventMethod } (getByLabelText('username')));
324
+ await (userEvent.${ eventMethod } (getByLabelText('username')) || userEvent.${ eventMethod } (getByLabelText('username')));
325
+ await (userEvent.${ eventMethod } (getByLabelText('username')) ?? userEvent.${ eventMethod } (getByLabelText('username')));
326
+ })
314
327
` ,
315
328
options : [ { eventModule : 'userEvent' } ] as const ,
316
329
} ) ) ,
@@ -960,6 +973,92 @@ ruleTester.run(RULE_NAME, rule, {
960
973
}
961
974
962
975
triggerEvent()
976
+ ` ,
977
+ } as const )
978
+ ) ,
979
+ ...USER_EVENT_ASYNC_FUNCTIONS . map (
980
+ ( eventMethod ) =>
981
+ ( {
982
+ code : `
983
+ import userEvent from '${ testingFramework } '
984
+ test('unhandled expression that evaluates to promise is invalid', () => {
985
+ condition ? null : (null, true && userEvent.${ eventMethod } (getByLabelText('username')));
986
+ });
987
+ ` ,
988
+ errors : [
989
+ {
990
+ line : 4 ,
991
+ column : 38 ,
992
+ messageId : 'awaitAsyncEvent' ,
993
+ data : { name : eventMethod } ,
994
+ } ,
995
+ ] ,
996
+ options : [ { eventModule : 'userEvent' } ] ,
997
+ output : `
998
+ import userEvent from '${ testingFramework } '
999
+ test('unhandled expression that evaluates to promise is invalid', async () => {
1000
+ condition ? null : (null, true && await userEvent.${ eventMethod } (getByLabelText('username')));
1001
+ });
1002
+ ` ,
1003
+ } as const )
1004
+ ) ,
1005
+ ...USER_EVENT_ASYNC_FUNCTIONS . map (
1006
+ ( eventMethod ) =>
1007
+ ( {
1008
+ code : `
1009
+ import userEvent from '${ testingFramework } '
1010
+ test('handled AND expression with left promise is invalid', async () => {
1011
+ await (userEvent.${ eventMethod } (getByLabelText('username')) && userEvent.${ eventMethod } (getByLabelText('username')));
1012
+ });
1013
+ ` ,
1014
+ errors : [
1015
+ {
1016
+ line : 4 ,
1017
+ column : 11 ,
1018
+ messageId : 'awaitAsyncEvent' ,
1019
+ data : { name : eventMethod } ,
1020
+ } ,
1021
+ ] ,
1022
+ options : [ { eventModule : 'userEvent' } ] ,
1023
+ output : `
1024
+ import userEvent from '${ testingFramework } '
1025
+ test('handled AND expression with left promise is invalid', async () => {
1026
+ await (await userEvent.${ eventMethod } (getByLabelText('username')) && userEvent.${ eventMethod } (getByLabelText('username')));
1027
+ });
1028
+ ` ,
1029
+ } as const )
1030
+ ) ,
1031
+ ...USER_EVENT_ASYNC_FUNCTIONS . map (
1032
+ ( eventMethod ) =>
1033
+ ( {
1034
+ code : `
1035
+ import userEvent from '${ testingFramework } '
1036
+ test('voided promise is invalid', async () => {
1037
+ await void userEvent.${ eventMethod } (getByLabelText('username'));
1038
+ await (userEvent.${ eventMethod } (getByLabelText('username')), null);
1039
+ });
1040
+ ` ,
1041
+ errors : [
1042
+ {
1043
+ line : 4 ,
1044
+ column : 15 ,
1045
+ messageId : 'awaitAsyncEvent' ,
1046
+ data : { name : eventMethod } ,
1047
+ } ,
1048
+ {
1049
+ line : 5 ,
1050
+ column : 11 ,
1051
+ messageId : 'awaitAsyncEvent' ,
1052
+ data : { name : eventMethod } ,
1053
+ } ,
1054
+ ] ,
1055
+ options : [ { eventModule : 'userEvent' } ] ,
1056
+ output : `
1057
+ import userEvent from '${ testingFramework } '
1058
+ test('voided promise is invalid', async () => {
1059
+ await void await userEvent.${ eventMethod } (getByLabelText('username'));
1060
+ await (await userEvent.${ eventMethod } (getByLabelText('username')), null);
1061
+ });
963
1062
` ,
964
1063
} as const )
965
1064
) ,
0 commit comments