Как изобразить фейковое посещение в Laravel?
Мне нужно перейти на страницу авторизованным пользователем. Как это лучше сделать? Думал HTTP Client или как-то подтянуть методы тестов. Запускаться будет на проде из крона.
Ответы (1 шт):
Вот вам самый простой пример Теста, так же вы можете пользоваться selenium ,который по умолчанию поднимается через sail.
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
class DashboardTest extends TestCase
{
use RefreshDatabase;
/** @test */
public function authorized_user_can_access_dashboard()
{
// Создаем пользователя
$user = User::factory()->create();
// Имитируем авторизацию пользователя и выполняем запрос
$response = $this->actingAs($user)
->get('/dashboard');
// Проверяем, что доступ разрешен
$response->assertStatus(200);
$response->assertSee('Welcome to your dashboard'); // Предполагаемый контент
}
/** @test */
public function guest_cannot_access_dashboard()
{
// Выполняем запрос без авторизации
$response = $this->get('/dashboard');
// Проверяем, что происходит перенаправление на страницу входа
$response->assertRedirect('/login');
}
}
в 2 словах обьеснение:
$this->actingAs($user):
Имитирует авторизацию указанного пользователя.
$this->get('/dashboard'):
Выполняет GET-запрос к указанному маршруту.
assertStatus(200):
Проверяет, что ответ имеет статус 200 OK.
assertSee('...'):
Проверяет, что ответ содержит указанный текст.
assertRedirect('/login'):
Проверяет, что неавторизованный пользователь перенаправляется на страницу входа.
Если я не правильно понял ваш вопрос, пожалуйста дайте больше информации. ( у вас и крон и ларавел и тесты и http client )