2026-05-16 15:01:07 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
declare(strict_types=1);
|
|
|
|
|
|
|
|
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
|
|
|
|
|
|
|
|
/**
|
2026-05-25 07:35:03 +03:00
|
|
|
* J2 (Sprint 3F) — гейт SaaS-admin зоны.
|
2026-05-16 15:01:07 +03:00
|
|
|
*
|
2026-05-25 07:35:03 +03:00
|
|
|
* EnsureSaasAdmin на /api/admin/*: пропускает запрос во ВСЕХ окружениях.
|
|
|
|
|
* Защита боевой админ-зоны (/admin + /api/admin/*) перенесена на nginx
|
|
|
|
|
* (HTTP Basic Auth, отдельный пароль — /etc/nginx/.htpasswd-admin), потому
|
|
|
|
|
* что настоящий saas-admin SSO (Yandex 360) ещё не готов (Б-1 + DO-4).
|
|
|
|
|
* Ранее middleware fail-closed 503 вне dev/testing — это закрывало всю
|
|
|
|
|
* админку на проде наглухо; стопгэп заменил замок на nginx-дверь.
|
2026-05-16 15:01:07 +03:00
|
|
|
*/
|
|
|
|
|
uses(DatabaseTransactions::class);
|
|
|
|
|
|
2026-05-25 07:35:03 +03:00
|
|
|
test('/api/admin/* пропускается на testing-окружении', function () {
|
2026-05-16 15:01:07 +03:00
|
|
|
$this->getJson('/api/admin/tenants')->assertStatus(200);
|
|
|
|
|
});
|
|
|
|
|
|
2026-05-25 07:35:03 +03:00
|
|
|
test('/api/admin/* пропускается и на production (замок 503 снят, дверь держит nginx)', function () {
|
2026-05-16 15:01:07 +03:00
|
|
|
$this->app->detectEnvironment(fn () => 'production');
|
|
|
|
|
|
2026-05-25 07:35:03 +03:00
|
|
|
// Раньше тут был 503. Теперь приложение зону не закрывает — её держит
|
|
|
|
|
// nginx basic-auth (стопгэп до реального Yandex 360 SSO).
|
|
|
|
|
$this->getJson('/api/admin/tenants')->assertStatus(200);
|
2026-05-16 15:01:07 +03:00
|
|
|
});
|