Вредитель PHP / PHPUnit: запуск теста с ролью

#php #laravel #laravel-permission #php-pest

#php #laravel #laravel-разрешение #php-вредитель

Вопрос:

Я использую Pest PHP (с Laravel) и пытаюсь запустить тест с заданной ролью, но у меня уже есть статус 403 (запрещено). Я использую spatie / laravel-разрешение для управления ролями.

Это мой маршрут :

 Route::get('liste', IndexAccessController::class)->name('access.index')->middleware('role:team');
  

И это мой вредительский PHP-тест:

 beforeEach(function () {
    $me = factory(User::class)->create();
    $role = SpatiePermissionModelsRole::where('name', 'team')->first();
    $me->assignRole($role);

    $this->actingAs($me);
});

test('has index page', function () {
    $response = $this->get(route('access.index'));
    $response->assertStatus(200);
});
  

Когда я выполняю отладку, чтобы получить роли пользователя, Laravel сообщает мне, что у него их нет.

Большое спасибо

Комментарии:

1. Ваш код кажется прекрасным, я бы предположил, что ошибка заключается в том, что нет роли с именем team, либо путем обновления базы данных в тестах, неправильного заполнения базы данных или не создания роли team в контексте теста. dd ($ role); проверил бы, является ли это проблемой.