Метод assertStatus класса Testable
Метод assertStatus проверяет, что HTTP-статус ответа компонента
равен ожидаемому значению. Он принимает один параметр -
целочисленный код статуса. Если фактический статус не совпадает
с ожидаемым, тест проваливается.
Синтаксис
$component->assertStatus($status);
Пример
Проверим, что компонент возвращает статус 200 (успешный ответ):
<?php
namespace Tests\Unit\Livewire;
use Livewire\Livewire;
use Tests\TestCase;
use App\Livewire\Post;
class PostTest extends TestCase
{
public function test_post_component_returns_ok_status()
{
$component = Livewire::test(Post::class);
$component->assertStatus(200);
}
}
?>
Пример
Проверим статус 404 для несуществующего ресурса:
<?php
namespace App\Livewire;
use Livewire\Component;
use App\Models\Post as PostModel;
use Illuminate\Http\Response;
class Post extends Component
{
public $postId;
public function mount($id = null)
{
$this->postId = $id;
if (!PostModel::find($id)) {
abort(Response::HTTP_NOT_FOUND);
}
}
public function render()
{
return view('livewire.post');
}
}
?>
<?php
namespace Tests\Unit\Livewire;
use Livewire\Livewire;
use Tests\TestCase;
use App\Livewire\Post;
class PostTest extends TestCase
{
public function test_post_component_returns_404_for_invalid_id()
{
$component = Livewire::test(Post::class, ['id' => 999]);
$component->assertStatus(404);
}
}
?>
Пример
Проверим статус 403 при отсутствии прав доступа:
<?php
namespace App\Livewire\Admin;
use Livewire\Component;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;
class Dashboard extends Component
{
public function mount()
{
if (!Auth::user() || !Auth::user()->isAdmin()) {
abort(Response::HTTP_FORBIDDEN);
}
}
public function render()
{
return view('livewire.admin.dashboard');
}
}
?>
<?php
namespace Tests\Unit\Livewire\Admin;
use Livewire\Livewire;
use Tests\TestCase;
use App\Livewire\Admin\Dashboard;
use App\Models\User;
class DashboardTest extends TestCase
{
public function test_dashboard_returns_403_for_non_admin()
{
$user = User::factory()->create(['is_admin' => false]);
$this->actingAs($user);
$component = Livewire::test(Dashboard::class);
$component->assertStatus(403);
}
}
?>
Смотрите также
-
метод
assertOk,
который проверяет успешный статус 200 -
метод
assertRedirect,
который проверяет редирект -
метод
assertNoRedirect,
который проверяет отсутствие редиректа -
метод
assertViewIs,
который проверяет используемый шаблон