РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
250 of 274 menu

Метод actingAs

Метод actingAs класса Livewire используется в тестах для установки текущего аутентифицированного пользователя. Он принимает экземпляр модели пользователя или реализацию интерфейса Authenticatable. Метод возвращает экземпляр тестируемого компонента с примененной авторизацией.

Синтаксис

<?php $user = User::find(1); $component = Livewire::actingAs($user)->test(ComponentClass::class); ?>

Пример

Создадим компонент Profile, который отображает имя текущего пользователя:

<?php namespace AppLivewire; use LivewireComponent; use IlluminateSupportFacadesAuth; class Profile extends Component { public $userName; public function mount() { $this->userName = Auth::user()->name; } public function render() { return view('livewire.profile'); } } ?>
<div> <p>Welcome, {{ $userName }}</p> </div>

Пример

Напишем тест для компонента Profile с использованием метода actingAs:

<?php namespace TestsFeatureLivewire; use LivewireLivewire; use TestsTestCase; use AppModelsUser; class ProfileTest extends TestCase { public function test_authenticated_user_can_see_profile() { $user = User::factory()->create([ 'name' => 'John Doe', ]); Livewire::actingAs($user) ->test(Profile::class) ->assertSee('Welcome, John Doe'); } public function test_guest_user_cannot_see_profile() { Livewire::test(Profile::class) ->assertStatus(403) ->assertSee('Unauthorized'); } } ?>

Результат выполнения первого теста:

OK (1 tests, 1 assertions)

Пример

При работе с несколькими тестами метод actingAs позволяет быстро переключаться между пользователями:

<?php namespace TestsFeatureLivewire; use LivewireLivewire; use TestsTestCase; use AppModelsUser; use AppLivewireAdminProfile; class AdminProfileTest extends TestCase { public function test_admin_can_see_admin_panel() { $admin = User::factory()->create([ 'name' => 'Admin', 'is_admin' => true, ]); Livewire::actingAs($admin) ->test(AdminProfile::class) ->assertSee('Admin Panel') ->assertSee('Manage users'); } public function test_user_cannot_see_admin_panel() { $user = User::factory()->create([ 'name' => 'User', 'is_admin' => false, ]); Livewire::actingAs($user) ->test(AdminProfile::class) ->assertSee('Access Denied') ->assertDontSee('Manage users'); } } ?>

Результат выполнения кода:

OK (2 tests, 4 assertions)

Смотрите также

  • метод test,
    который инициализирует тестирование компонента Livewire
  • метод assertSet,
    который проверяет значение свойства компонента
  • метод call,
    который вызывает метод компонента в тесте
  • метод assertSee,
    который проверяет наличие текста в рендере компонента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить