🙌

Next.js, Prisma, Jestでサーバーサイドのテストをする

に公開2

Discussion

ぴんなるぴんなる

参考になります、ありがとうございます!
Testing-Libraryを使用して、フロントエンドの操作して(formをrenderして、clickしてsubmitさせる)server actionを動かそうと思ったのですが、server actiomが動きません(エラーもでず)。。
そういったテストはe2eテストのフレームワークを活用するほかなさそうですか?

Junsei NagaoJunsei Nagao

初めまして

React Testing Libraryは、Componentをレンダリングして操作するだけですので、Server Actionsをサポートしていないと思いますし、Next.jsではServer Actionsが発火するとHTTPリクエストが発生しますので、Jestの実行環境でHTTPリクエストを含めたテストをモックなしにテストするのは現状実装が難しいと思います。

回避策として

  • Server Actionsで実行しているロジックを切り出して関数単体でテストする(入力はテストケースで値を渡す、依存はモックする)
  • おっしゃるようにE2EテストでNext.jsサーバーを立ち上げたうえでテストする

のどちらかを行うのが良いと思います。