はじめに
こんにちは。
現在、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'),
],
終わりに
家族内でインフルエンザが流行してて怖いです....
簡単なものでしたが、以上です。