はじめに
こんにちは。
現在、Inertia利用下のプロジェクトでテストを書いてます。
書き方はそんな難しくないです。
本題
<?php namespace Tests\Feature; use Inertia\Testing\AssertableInertia; use Tests\TestCase; class ExampleControllerTest extends TestCase { public function test_invoke(): void { $this->get('example') ->assertInertia(static fn (AssertableInertia $page) => $page->component('Example')); } }
これで、/example
へのテストを実行して Example
Componentが呼び出されていることをテストできます。
ただ、ちょっとめんどくさいのが、 通常だと Inertiaのテストは js/Pages
へ向けてテストを実行してしまいます。
それは vendor/inertiajs/inertia-laravel/config/inertia.php
で設定されてます。
'page_paths' => [ resource_path('js/Pages'), ],
例えば、管理画面+ユーザー画面のように、同じレポジトリで複数サイトを扱う場合、 js/Admin/
js/Client/
のようにパスを分けてつかいたいと思います。
その場合は設定ファイルを上書きします。
$ php artisan vendor:publish --provider="Inertia\ServiceProvider"
作成された config/inertia.php
上で以下のように変更すればOKです。
'page_paths' => [ resource_path('js/Admin/Pages'), resource_path('js/Client/Pages'), ],
終わりに
家族内でインフルエンザが流行してて怖いです....
簡単なものでしたが、以上です。