diff --git a/tests/database/factories/TicketMessageFactory.php b/tests/database/factories/TicketMessageFactory.php new file mode 100644 index 0000000000..a4cde67028 --- /dev/null +++ b/tests/database/factories/TicketMessageFactory.php @@ -0,0 +1,16 @@ +passwordReset() ->emailVerification() ->resources([ + DepartmentResource::class, PostResource::class, PostCategoryResource::class, ProductResource::class, + TicketResource::class, + TicketMessageResource::class, UserResource::class, ]) ->pages([ diff --git a/tests/src/Panels/Resources/Pages/CreateRecordTest.php b/tests/src/Panels/Resources/Pages/CreateRecordTest.php index a3ab98ba2e..61cb51e95c 100644 --- a/tests/src/Panels/Resources/Pages/CreateRecordTest.php +++ b/tests/src/Panels/Resources/Pages/CreateRecordTest.php @@ -1,9 +1,11 @@ call('create') ->assertHasFormErrors(['title' => 'required']); }); + +it('can ticket messages page without a policy', function () { + $this->get(TicketMessageResource::getUrl('create')) + ->assertSuccessful(); +}); + +it('does not render ticket messages page without a policy if authorization is strict', function () { + Filament::getCurrentPanel()->strictAuthorization(); + + $this->get(TicketMessageResource::getUrl('create')) + ->assertServerError(); + + Filament::getCurrentPanel()->strictAuthorization(false); +}); diff --git a/tests/src/Panels/Resources/Pages/EditRecordTest.php b/tests/src/Panels/Resources/Pages/EditRecordTest.php index 4e97a59040..d024754ffb 100644 --- a/tests/src/Panels/Resources/Pages/EditRecordTest.php +++ b/tests/src/Panels/Resources/Pages/EditRecordTest.php @@ -1,9 +1,12 @@ $newPostTitle, ]); }); + +it('can ticket messages page without a policy', function () { + $message = TicketMessage::factory() + ->create(); + + $this->get(TicketMessageResource::getUrl('edit', ['record' => $message])) + ->assertSuccessful(); +}); + +it('does not render ticket messages page without a policy if authorization is strict', function () { + Filament::getCurrentPanel()->strictAuthorization(); + + $message = TicketMessage::factory() + ->create(); + + $this->get(TicketMessageResource::getUrl('edit', ['record' => $message])) + ->assertServerError(); + + Filament::getCurrentPanel()->strictAuthorization(false); +}); diff --git a/tests/src/Panels/Resources/Pages/ListRecordsTest.php b/tests/src/Panels/Resources/Pages/ListRecordsTest.php index f500592850..dc5ce513f9 100644 --- a/tests/src/Panels/Resources/Pages/ListRecordsTest.php +++ b/tests/src/Panels/Resources/Pages/ListRecordsTest.php @@ -2,9 +2,12 @@ use Filament\Actions\DeleteAction; use Filament\Actions\DeleteBulkAction; +use Filament\Facades\Filament; use Filament\Tests\Fixtures\Models\Post; +use Filament\Tests\Fixtures\Models\TicketMessage; use Filament\Tests\Fixtures\Resources\Posts\Pages\ListPosts; use Filament\Tests\Fixtures\Resources\Posts\PostResource; +use Filament\Tests\Fixtures\Resources\TicketMessages\TicketMessageResource; use Filament\Tests\Fixtures\Resources\Users\UserResource; use Filament\Tests\Panels\Resources\TestCase; @@ -115,3 +118,23 @@ it('can bulk delete posts', function () { assertSoftDeleted($post); } }); + +it('can render ticket messages page without a policy', function () { + TicketMessage::factory(10) + ->create(); + + $this->get(TicketMessageResource::getUrl('index')) + ->assertSuccessful(); +}); + +it('does not render ticket messages page without a policy if authorization is strict', function () { + Filament::getCurrentPanel()->strictAuthorization(); + + TicketMessage::factory(10) + ->create(); + + $this->get(TicketMessageResource::getUrl('index')) + ->assertServerError(); + + Filament::getCurrentPanel()->strictAuthorization(false); +}); diff --git a/tests/src/Panels/Resources/Pages/ViewRecordTest.php b/tests/src/Panels/Resources/Pages/ViewRecordTest.php index 540b7610a8..96e9452a31 100644 --- a/tests/src/Panels/Resources/Pages/ViewRecordTest.php +++ b/tests/src/Panels/Resources/Pages/ViewRecordTest.php @@ -1,8 +1,11 @@ $newPostTitle, ]); }); + +it('can ticket messages page without a policy', function () { + $message = TicketMessage::factory() + ->create(); + + $this->get(TicketMessageResource::getUrl('view', ['record' => $message])) + ->assertSuccessful(); +}); + +it('does not render ticket messages page without a policy if authorization is strict', function () { + Filament::getCurrentPanel()->strictAuthorization(); + + $message = TicketMessage::factory() + ->create(); + + $this->get(TicketMessageResource::getUrl('view', ['record' => $message])) + ->assertServerError(); + + Filament::getCurrentPanel()->strictAuthorization(false); +});