
解決したいこと
reactでアプリを作成、フロントのテストにjestを使用しています。
button要素のないフォームのイベントを発火させたいのですが、どうしたらいいかわかりません。
ボタンではなく、画像をクリックするとイベントが発火するようにしたかったので、現在のコードになりました。
教えてください。
発生している問題・エラー
イベントが発火してるか確認するため、適当なログを仕込みましたが、そのログが流れません。
なので、現状では要素をうまく取得してイベントの発火ができてないと思います。
button要素があるフォームについてはわかるのですが、逆にbutton要素ないフォームでは何の要素取得すべきで、どう記述すれば取得できるんでしょうか?
該当するソースコード
react.tsx
1return ( 2 <form aria-label='test' onSubmit={handleSubmit(onSubmit)}> 3 <input type="image" src={test} alt="test"/> 4 </form> 5)
react.test.tsx
1it('クリックする', async() => { 2 render(<react /> 3 4 const button = screen.getByRole('input', { name: 'test' }) 5 /*const button = screen.getByAltText('test')*/ 6 /*const unlikebutton = screen.getByRole('form', { name: 'test' })*/ 7 /*const unlikebutton = screen.getByRole('input', { name: 'test' })*/ 8 9 userEvent.click(button) 10 await waitFor(() => { 11 /*onSubmit起動時の処理を記入*/ 12 }) 13 })
自分で試したこと
上記の通り、色々パターンを試しました。
aria-labelタグを追加してみてnameで取得できないか試しましたがそれもダメでした。


回答1件
あなたの回答
tips
プレビュー