seed(RolesAndPermissionsSeeder::class); $admin = User::factory()->create(['is_active' => true]); $admin->assignRole('admin'); $this->actingAs($admin); LivewireVolt::test('admin.roles.create') ->set('name', 'support') ->set('permissions', ['users:manage', 'roles:manage']) ->call('save') ->assertHasNoErrors() ->assertRedirect(route('admin.roles.index')); $role = Role::findByName('support'); expect($role->hasPermissionTo('users:manage'))->toBeTrue() ->and($role->hasPermissionTo('roles:manage'))->toBeTrue(); }); test('admin can edit a role with cached permission options', function () { /** @var TestCase $this */ $this->seed(RolesAndPermissionsSeeder::class); $admin = User::factory()->create(['is_active' => true]); $admin->assignRole('admin'); $this->actingAs($admin); $role = Role::query()->create([ 'name' => 'reviewer', 'guard_name' => 'web', ]); LivewireVolt::test('admin.roles.edit', ['id' => $role->id]) ->assertSee('roles:manage') ->set('name', 'review-lead') ->set('permissions', ['press-releases:read']) ->call('save') ->assertHasNoErrors() ->assertRedirect(route('admin.roles.index')); expect(Role::findByName('review-lead')->hasPermissionTo('press-releases:read'))->toBeTrue(); });