Тестирование Laravel — UnauthorizedException: у пользователя нет нужных ролей

Итак, я работаю с тестами Laravel и создаю тесты для доступа к странице пользователей, где я могу видеть всех пользователей и редактировать их. в UsersController.php Я сделал, что только администратор может получить доступ к странице пользователя. Роли и разрешения, которые я использовал из плагина spatie https://github.com/spatie/laravel-permission. Я сделал тест, чтобы проверить, может ли простой пользователь получить доступ к странице пользователя, и вот код в UserTest.php

/** @test */
public function user_try_to_access_users_page()
{
$user = factory(User::class)->create();
$user->assignRole('user');
$this->actingAs($user);

$response = $this->get('/users');
$response->assertStatus(403);
}

А вот код в UsersController.php это позволяет только администратору доступ к нему.

public function index()
{
$testUser = Auth::user();

if ($testUser->hasRole('admin'))
{
$users = User::all();

return view('users.index', ['users' => $users]);
}

return response(view('errors.403'), 403);
}

Теперь, когда я пытаюсь запустить тест, он дает мне ошибку

Тесты \ Feature \ UserTest :: user_try_to_access_users_page
Spatie \ Permission \ Exceptions \ UnauthorizedException: у пользователя нет необходимых ролей.

В этой строке $response = $this->get('/users');,

Это хорошо, потому что не позволяет пользователю получить доступ к странице, но он должен дать код 403, а не ошибку.
Спасибо за ваше время.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]