Плагін браузерних тестів Pest тепер підтримує тестування субдоменів у додатках Laravel через новий метод withHost(), що вирішує давню проблему для розробників, які будують multi-tenant та workspace додатки.
Проблема
Раніше тестовий сервер був прив’язаний до 127.0.0.1, тому неможливо було перевіряти маршрути, засновані на субдоменах. Це особливо ускладнювало роботу з маршрутизацією за доменом у Laravel:
Route::domain('{tenant}.localhost')->group(function () {
Route::get('/dashboard', function (string $tenant) {
return view('dashboard', ['tenant' => $tenant]);
});
});
Без можливості вказати хост браузерні тести не могли коректно співпадати з такими маршрутами.
Рішення
Новий метод withHost() дозволяє вказати хост для тестів двома способами.
Налаштувати для окремого тесту:
it('shows the tenant dashboard', function () {
$page = visit('/dashboard')->withHost('acme.localhost');
$page->assertSee('Welcome to Acme');
});
Або задати глобально в файлі Pest.php:
pest()->browser()->withHost('acme.localhost');
Практичні сценарії
Ця функція особливо корисна для:
- Laravel Sail environments: направляйте тести на ваш Sail-хост, наприклад
laravel.testабо його субдоменні варіанти - Multi-tenant isolation testing: перевіряйте, що кожен tenant бачить лише свої дані, послідовно відвідуючи різні субдомени
- Workspace-based applications: тестуйте логіку маршрутизації за субдоменами для командних або організаційних додатків
Початок роботи
Оновіть плагін браузера Pest, щоб отримати цю можливість:
composer update pestphp/pest-plugin-browser
Детальніше — у повній статті Nuno Maduro.