create()->givePermissionTo('view_bookings'); $withoutPermission = User::factory()->create(); expect($policy->viewAny($withPermission))->toBeTrue() ->and($policy->view($withPermission, null))->toBeTrue() ->and($policy->viewAny($withoutPermission))->toBeFalse() ->and($policy->view($withoutPermission, null))->toBeFalse(); }); test('create is open to any authenticated user', function () { $policy = new BookingPolicy; expect($policy->create(User::factory()->create()))->toBeTrue(); }); test('cancel requires the manage_bookings permission', function () { $policy = new BookingPolicy; $withPermission = User::factory()->create()->givePermissionTo('manage_bookings'); $withoutPermission = User::factory()->create(); expect($policy->cancel($withPermission, null))->toBeTrue() ->and($policy->cancel($withoutPermission, null))->toBeFalse(); }); test('refund requires the process_refunds permission', function () { $policy = new BookingPolicy; $withPermission = User::factory()->create()->givePermissionTo('process_refunds'); $withoutPermission = User::factory()->create(); expect($policy->refund($withPermission, null))->toBeTrue() ->and($policy->refund($withoutPermission, null))->toBeFalse(); });