実現したいこと
Playwright Component Test(Viteベース)でNext.jsのuseRouter
やnext/link
などルーター依存のコンポーネントをテストを実装・実現できるかどうかを知りたいです。
発生している問題・分からないこと
- Playwright Component Test(Viteベース)で、Next.jsの
useRouter
やnext/link
などルーター依存のコンポーネントをテストしようとすると、
「NextRouter was not mounted」や「Failed to resolve module specifier 'next/dist/shared/lib/router-context'」
などのエラーが発生します。
私の調べた限りだと、Playwright Component Testは「単体コンポーネントのみ」をViteで直接マウントするため、Next.jsのアプリラッパーや内部コンテキストが再現できない認識で、Next.jsのuseRouter
やnext/link
などルーター依存のコンポーネントをテストは実装できないのかと思っております。
ただし、私の知識が浅く実現できる方法などがある場合は有識者の方に抽象的でも良いので、このような方法があるよ!などを聞きたいと思いました。
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
以下のような検索結果がヒットし、実装できない認識です。
ただし、私の知識不足で他の方法で出来る場合はどのような手段があるかお聞きしたいです。
- Next.jsの
useRouter
は内部的にnext/dist/shared/lib/router-context
という特殊なコンテキストを参照しています。 - ViteやPlaywrightのComponent Test環境では、このNext.jsの内部モジュールを正しく解決・ラップできません。
- そのため、Next.jsのルーター依存コンポーネントはPlaywright Component Testでは原則テストできません。
補足
特になし

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