2.9 KiB
Evidencias de validacao local — 24/09/2026
Resultado: 40 testes passaram (39 da aplicacao + 1 de ciclo de esquema), com 3.242 verificacoes no total. Ambiente isolado: PHP 8.5.11, PostgreSQL 17.11, PostGIS 3.6.2, porta local 55439. A base configurada da aplicacao nao foi utilizada.
| Verificacao | Resultado |
|---|---|
| migrate:fresh --seed | Passou |
| Segunda execucao de migrate e seeds de referencia | Passou |
| Rollback das 15 novas migrations preservando legado | Passou |
| migrate:rollback do ultimo lote e reaplicacao | Passou |
| Preservacao de postgis/pgcrypto | Passou |
| 59 tabelas, 684 campos, tipos, defaults, nulabilidade e indices | Correspondem ao catalogo |
| 69 FKs e respectivas accoes | Correspondem ao dicionario |
| Restricoes monetarias, espaciais, auditoria e eventos | Passaram |
| PHPUnit dedicado | 1 teste, 3.106 verificacoes |
| PHPUnit da aplicacao | 39 testes, 136 verificacoes |
| PHP lint | 22 ficheiros passaram |
| Pint dos ficheiros alterados | Passou |
| PHPStan dos modelos/factories/seeders alterados | Passou, zero erros |
| Consistencia estatica e reproducao do gerador | Passaram |
A base tem 61 tabelas fisicas: 59 da aplicacao, migrations gerida pelo Laravel e spatial_ref_sys gerida pelo PostGIS. Os dois objectos de infraestrutura nao sao criados pelas migrations aplicacionais. Os hashes dos artefactos testados estao em validation-results.json. A validacao corresponde a esses ficheiros; qualquer alteracao posterior exige nova verificacao.
Comandos usados com variaveis de ambiente apontadas exclusivamente para a instancia temporaria:
php vendor/bin/phpunit --configuration=phpunit.investmoz.xml --do-not-cache-result
php vendor/bin/phpunit --configuration=phpunit.xml --do-not-cache-result
php vendor/bin/pint --test [ficheiros PHP alterados]
php vendor/bin/phpstan analyse [modelos/factories/seeders alterados] --no-progress
python tools/investmoz/validate.py
python tools/investmoz/generate.py --source CAMINHO_DOCX --check
O teste dedicado invoca os comandos Artisan reais dentro da aplicacao. Exige INVESTMOZ_SCHEMA_TESTS=1, APP_ENV=testing, driver pgsql, base *_test e ausencia de config em cache antes de migrate:fresh. O teste de plano confirma utilizacao possivel do indice GiST; nao prova um SLO de latencia. Nao se validaram producao, importacao real MySQL, RLS nem capacidades funcionais pendentes.
Compatibilidade local: o PHP 8.1 do Laragon nao satisfaz o composer.lock instalado (PHP >=8.4.1). Durante a analise, a configuracao local indicou a ligacao inexistente postgre; usar DB_CONNECTION=pgsql quando configurar a execucao local. Nao foram alteradas credenciais nem o ficheiro .env.
Foram corrigidas duas falhas detectadas no ensaio: duplicacao do utilizador pelo seeder antigo e sobrevivencia das funcoes PostgreSQL entre execucoes de migrate:fresh. O seeder passou a firstOrCreate; apenas as funcoes proprias investmoz_* usam CREATE OR REPLACE.