From 0cc8d762a5cd117a7dfd0126149d4bc2c524cf64 Mon Sep 17 00:00:00 2001 From: Gregor Vostrak Date: Tue, 9 Jun 2026 00:19:36 +0200 Subject: [PATCH] fix inertia backend role data structure after jetstream migration --- routes/web.php | 11 ++++-- .../Unit/Endpoint/Web/MembersEndpointTest.php | 35 +++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 tests/Unit/Endpoint/Web/MembersEndpointTest.php diff --git a/routes/web.php b/routes/web.php index 7a8c3497..51e9d9a7 100644 --- a/routes/web.php +++ b/routes/web.php @@ -2,13 +2,13 @@ declare(strict_types=1); -use App\Enums\Role; use App\Http\Controllers\Web\DashboardController; use App\Http\Controllers\Web\HomeController; use App\Http\Controllers\Web\OrganizationController; use App\Http\Controllers\Web\OrganizationInvitationController; use App\Http\Controllers\Web\UserController; use App\Http\Controllers\Web\UserProfileController; +use App\Service\PermissionStore; use Illuminate\Http\RedirectResponse; use Illuminate\Support\Facades\Route; use Inertia\Inertia; @@ -74,7 +74,14 @@ Route::middleware([ Route::get('/members', function () { return Inertia::render('Members', [ - 'availableRoles' => Role::values(), + 'availableRoles' => collect(PermissionStore::roleDefinitions()) + ->map(fn (array $definition, string $key): array => [ + 'key' => $key, + 'name' => $definition['name'], + 'description' => $definition['description'], + ]) + ->values() + ->all(), ]); })->name('members'); diff --git a/tests/Unit/Endpoint/Web/MembersEndpointTest.php b/tests/Unit/Endpoint/Web/MembersEndpointTest.php new file mode 100644 index 00000000..b600f395 --- /dev/null +++ b/tests/Unit/Endpoint/Web/MembersEndpointTest.php @@ -0,0 +1,35 @@ +createUserWithPermission([ + 'members:view', + ]); + $this->actingAs($data->user); + + // Act + $response = $this->get(route('members')); + + // Assert + $response->assertOk(); + $response->assertInertia(fn (Assert $page) => $page + ->component('Members') + ->has('availableRoles', 5, fn (Assert $role) => $role + ->has('key') + ->has('name') + ->has('description') + ) + ->where('availableRoles.0.key', 'owner') + ->where('availableRoles.0.name', 'Owner') + ); + } +}