Как изобразить фейковое посещение в Laravel?

Мне нужно перейти на страницу авторизованным пользователем. Как это лучше сделать? Думал HTTP Client или как-то подтянуть методы тестов. Запускаться будет на проде из крона.


Ответы (1 шт):

Автор решения: mydls1

Вот вам самый простой пример Теста, так же вы можете пользоваться 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 )

→ Ссылка