test: verify local main against isolated PostGIS QA
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"date": "2026-11-04",
|
||||
"scope": "main local; isolated PostgreSQL/PostGIS tests; no push or deployment",
|
||||
"tested_base_commit": "66a5dbf3118de8ff4787d2a7a5854df578df01ba",
|
||||
"qa": {
|
||||
"host": "127.0.0.1",
|
||||
"port": 55441,
|
||||
"exclusive_cluster": "C:\\Users\\macbook\\.config\\investmoz\\main-qa-20261104-pgdata",
|
||||
"databases": [
|
||||
"investmoz_test",
|
||||
"simulator_fiscal_delta_20261021_test",
|
||||
"proactive_investment_20261027_test",
|
||||
"main_reference_20261104_test",
|
||||
"main_extra_20261104_test"
|
||||
],
|
||||
"ready": true
|
||||
},
|
||||
"tests": {
|
||||
"unique_cases_passed": 1325,
|
||||
"unique_assertions": 28377,
|
||||
"failures_remaining": 0,
|
||||
"feature_files_covered": 274,
|
||||
"unit_cases": 94,
|
||||
"schema_lifecycle_assertions": 3106,
|
||||
"competitiveness": {
|
||||
"tests": 7,
|
||||
"assertions": 93
|
||||
},
|
||||
"province_filters": {
|
||||
"tests": 4,
|
||||
"assertions": 364
|
||||
}
|
||||
},
|
||||
"initial_diagnostics_preserved": [
|
||||
"snapshot encryption mismatch: verified original key used only in process APP_PREVIOUS_KEYS",
|
||||
"combined RefreshDatabase traits regrouped; aborted reference copy restored",
|
||||
"fiscal test fixtures separated from snapshot rules",
|
||||
"GD/WebP loaded for QA CLI processes only",
|
||||
"outdated audit total corrected: preserve13 business events and verify8 scan events and idempotent replay"
|
||||
],
|
||||
"application_source_changed": false,
|
||||
"test_correction": {
|
||||
"file": "tests/Feature/PortalServicesTest.php",
|
||||
"sha256": "cc2e90c1929b6b2ef050c1c9e58ae2e15ef3c3189459f12ee25d24e26ce9651b",
|
||||
"reason": "Preserve 13 business audit records and verify the eight existing malware worker start/result events and replay idempotency"
|
||||
},
|
||||
"preservation": {
|
||||
"historical_files_verified_and_restored": 523,
|
||||
"generated_outputs_archived": 17,
|
||||
"original_qa_dumps_unchanged": true,
|
||||
"matrix": {
|
||||
"unique_requirements": 3555,
|
||||
"columns": 49
|
||||
},
|
||||
"active_database_operations": 0,
|
||||
"remote_push": false,
|
||||
"active_migrations": false,
|
||||
"service_restarts": false
|
||||
},
|
||||
"evidence": "outputs/main-db-qa-20261104/result.json; readiness.json; evidence-preservation.json; *.junit.xml",
|
||||
"visual_acceptance": "previous pending states preserved; no visual conference performed"
|
||||
}
|
||||
@@ -9087,3 +9087,14 @@ Verificação do delta: 25 testes frontend dirigidos aprovados; TypeScript e com
|
||||
Pedido expresso da Tempo: integrar a reconciliação na `main` local, preservar as alterações, verificar conflitos e testes, sem enviar para o remoto. A `main` anterior (`4b3c7e16`) foi preservada em `backup/main-before-reconciliation-20261104`. A integração de `codex/investemoz-reconciliation-20261029` (`f17e807c`) fez fast-forward: a main anterior é antepassada da origem. Não houve nova resolução automática nem descarte de conteúdo; a árvore integrada foi conferida idêntica à origem. Os oito conflitos gravados já estavam resolvidos no commit de origem e não existem marcadores em app/resources/routes/tests/docs. Sem alterações por gravar anteriores ou alterações nos outros worktrees.
|
||||
|
||||
Verificação local: 1.672 testes frontend aprovados, zero falhas; TypeScript global aprovado; compilação QA aprovada em `public/build-qa-opportunities` (avisos de fontaine opcional e dimensão dos chunks); sintaxe dos 468 ficheiros PHP alterados aprovada; `git diff --check` limpo. Matriz preservada com 3.555 requisitos únicos e 49 colunas. Recibos e logs: `outputs/reconciliation-main-local-20261104/integrity.json`. Testes dependentes de PostgreSQL não reexecutados: não havia listener da QA isolada em 55441. Provas anteriores preservadas, sem as apresentar como nova execução. Esta integração não declara aceitação funcional/visual integral, disponibilização no portal nem execução de migrações. Sem push, escrita na base activa, publicação de conteúdos ou alteração de serviços/permissões.
|
||||
|
||||
|
||||
### 04/11/2026 — base QA exclusiva e testes da main local
|
||||
|
||||
Pedido expresso da Tempo: preparar QA isolada e executar os testes de base de dados da main local, sem tocar na base activa nem enviar alterações ao remoto. Base de código `66a5dbf3`, após integrar a reconciliação. Criado cluster PostgreSQL/PostGIS novo em directório exclusivo `C:/Users/macbook/.config/investmoz/main-qa-20261104-pgdata`, apenas em `127.0.0.1:55441`, com cinco bases terminadas em `_test`. Guardas conferem nome, porta e directório real antes de migrações/testes; sem configuração em cache, DB_URL ou fallback activo. InvesteMoz, SGF e os restantes clusters não foram reiniciados nem reconfigurados. QA permanece disponível; nenhuma instalação de serviço ou alteração global do PHP.
|
||||
|
||||
Resultado final por caso distinto, substituindo o resultado inicial apenas quando houve repetição documentada: **1.325 aprovados, 28.377 asserções, zero falhas por resolver nesta ronda**. Todos os 274 ficheiros Feature cobertos, mais 94 casos unitários e ciclo de schema com 3.106 asserções. Inclui Competitividade 7/93 e filtros provinciais 4/364. A ronda principal inicial teve 877 casos, 873 aprovados, duas falhas e dois erros; os quatro casos passaram em repetição dirigida após carregar GD/WebP apenas no processo QA e corrigir uma expectativa antiga de auditoria. O teste conserva os 13 eventos de negócio, verifica os oito eventos já existentes de início/resultado de quatro scans e confirma ausência de duplicação no replay. Não se alterou o código da aplicação.
|
||||
|
||||
Preparação e diagnósticos preservados: dois snapshots QA anteriores restaurados em bases separadas e actualizados pelas migrações locais; histórico de uma migração da oferta reconciliado só no clone, após comparar colunas, constraints, índices, políticas e RLS com o schema actual. Dois testes com traits combinados de RefreshDatabase tinham sido mal agrupados: executor da cópia de referência interrompido, logs conservados, cópia restaurada e testes separados; não foi perda de dados activos. Fixture fiscal própria executada em schema limpo, sem apagar versões legítimas do snapshot. Chave local compatível do snapshot verificada e disponibilizada apenas ao executor como chave anterior, sem expor, alterar chave ou reescrever registos. Originais editoriais existentes copiados para a fixture QA com hashes verificados. Falhas iniciais não são apagadas nem apresentadas como regressões resolvidas no produto sem causa demonstrada.
|
||||
|
||||
Preservação: 523 JSON históricos conferidos/restaurados por SHA256, 17 saídas novas arquivadas separadamente; dumps originais QA inalterados. Matriz mantém 3.555 requisitos únicos e 49 colunas. Pint, sintaxe do teste alterado e diff-check aprovados. Sem push, publicação, migração/escrita activa ou alteração de permissões activas. Estas provas não substituem a conferência visual autenticada nem encerram requisitos transversais; pendências anteriores conservadas. Recibo: `docs/investmoz/unification/main-local-database-qa-20261104.json`; resultados por teste, tentativas iniciais, executores e JUnit em `outputs/main-db-qa-20261104/`.
|
||||
|
||||
@@ -285,7 +285,14 @@ class PortalServicesTest extends TestCase
|
||||
$this->post('/management/portal-services/disclosure-authorization/apply')
|
||||
->assertRedirect(route('services.manage'))->assertSessionHasNoErrors();
|
||||
$this->assertDatabaseCount('portal_resource_revisions', 8);
|
||||
$this->assertDatabaseCount('audit_events', 13);
|
||||
// Four synchronous scans now retain their start and result in the audit ledger.
|
||||
$this->assertSame(13, DB::table('audit_events')->where('source_system', '!=', 'document-malware-worker')->count());
|
||||
$this->assertDatabaseCount('audit_events', 21);
|
||||
foreach (DB::table('portal_resources')->whereIn('id', $resourceIds)->pluck('document_id') as $documentId) {
|
||||
$this->assertSame(['scan_result_recorded', 'scan_started'], DB::table('audit_events')
|
||||
->where('source_system', 'document-malware-worker')->where('entity_id', $documentId)
|
||||
->orderBy('action')->pluck('action')->all());
|
||||
}
|
||||
$this->assertSame(4, DB::table('portal_resources')->where('published', true)->count());
|
||||
$this->assertSame(4, DB::table('documents')->where('data_classification', 'public')->where('rights_status', 'authorized')->count());
|
||||
$this->assertDatabaseHas('portal_resources', ['id' => $resourceIds[2], 'published' => true, 'source_confirmation' => 'identified', 'legal_status' => 'unknown']);
|
||||
@@ -308,6 +315,7 @@ class PortalServicesTest extends TestCase
|
||||
$this->assertDatabaseHas('portal_resource_links', ['resource_id' => $resourceIds[0], 'target_type' => 'module', 'target_key' => 'simulator']);
|
||||
$this->post('/management/portal-services/disclosure-authorization/apply')->assertSessionHasNoErrors();
|
||||
$this->assertDatabaseCount('portal_resource_revisions', 8);
|
||||
$this->assertDatabaseCount('audit_events', 21);
|
||||
}
|
||||
|
||||
public function test_qa_library_preserves_an_original_without_inventing_a_topic_or_auto_publishing(): void
|
||||
|
||||
Reference in New Issue
Block a user