@@ -311,6 +311,19 @@ ruleTester.run(RULE_NAME, rule, {
311311
312312 await triggerEvent()
313313 })
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+ })
314327 ` ,
315328 options : [ { eventModule : 'userEvent' } ] as const ,
316329 } ) ) ,
@@ -960,6 +973,92 @@ ruleTester.run(RULE_NAME, rule, {
960973 }
961974
962975 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+ });
9631062 ` ,
9641063 } as const )
9651064 ) ,
0 commit comments