commit8
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-10-30 12:32:57 +02:00
parent fa0e656214
commit 6d14b4e6f0
10 changed files with 146 additions and 15 deletions
+4 -11
View File
@@ -2,6 +2,7 @@
use App\Enums\PurchasingRole;
use App\Models\User;
use App\Services\EvaluationAccess;
use App\Services\EvaluationNavigation;
use App\Services\RequisitionWorkflow;
use Illuminate\Http\Request;
@@ -12,15 +13,7 @@ use Illuminate\Validation\Rule;
// Only the existing isolated local Compras evaluation database may use this entry.
$evaluationScope = static function (Request $request): User {
abort_unless(EvaluationNavigation::local($request), 404);
$db = DB::connection();
abort_unless($db->getDriverName() === 'pgsql' && $db->getConfig('host') === '127.0.0.1'
&& preg_match('/^compras_receipts_test_[a-f0-9]{12}$/D', $db->getDatabaseName()), 404);
$identity = $db->selectOne('select current_database() as db, current_user as role');
abort_unless($identity->db === $db->getDatabaseName()
&& $identity->role === 'payable_qa_'.substr($identity->db, -12), 404);
return User::where('email', 'preparacao-obrigacoes@example.test')->firstOrFail();
return app(EvaluationAccess::class)->source($request);
};
$evaluationPages = [
@@ -51,7 +44,7 @@ Route::get('/avaliar', function (Request $request) use ($evaluationScope, $evalu
}
$html .= '<section><h2>Experimentar funções operacionais</h2><p>Para preparar ou decidir passos específicos, podes entrar nestes perfis sintéticos sem pedir contas ou credenciais.</p>';
foreach (PurchasingRole::cases() as $role) {
if ($role === PurchasingRole::Admin) {
if (in_array($role, [PurchasingRole::Admin, PurchasingRole::Configured], true)) {
continue;
}
$html .= '<form method="post" action="/avaliar/entrar"><input type="hidden" name="_token" value="'.$token.'"><input type="hidden" name="role" value="'.$role->value.'"><button>'.$role->label().'</button></form>';
@@ -63,7 +56,7 @@ Route::get('/avaliar', function (Request $request) use ($evaluationScope, $evalu
Route::post('/avaliar/entrar', function (Request $request) use ($evaluationScope) {
$source = $evaluationScope($request);
$destination = EvaluationNavigation::returnPath($request->session()->get('url.intended'), $request);
$data = $request->validate(['role' => ['required', Rule::enum(PurchasingRole::class)]]);
$data = $request->validate(['role' => ['required', Rule::in(array_map(fn (PurchasingRole $role) => $role->value, array_filter(PurchasingRole::cases(), fn (PurchasingRole $role) => $role !== PurchasingRole::Configured)))]]);
abort_if(array_diff(array_keys($request->all()), ['role', '_token']) !== [], 422);
$role = PurchasingRole::from($data['role']);
$user = DB::transaction(function () use ($source, $role) {