Ir para o conteúdo

Nota (PT-BR): este documento é uma referência normativa de engenharia e permanece temporariamente em inglês para preservar precisão técnica. A visão geral em português está em Decision Engine. A tradução completa está no backlog de documentação.

Testes locais do banco de decisioning

Esta fundacao e validada exclusivamente no Supabase local. Os comandos abaixo nao vinculam projeto, nao aplicam migrations remotas e nao usam db push.

Pre-requisitos

  • Supabase CLI instalado.
  • Docker Desktop, OrbStack ou outro daemon Docker local em execucao.
  • Portas locais configuradas em supabase/config.toml disponiveis.

Reset e pgTAP

Execute a partir da raiz do monorepo:

supabase db reset
supabase test db

supabase db reset recria o banco local, aplica todas as migrations em ordem e carrega supabase/seed.sql. supabase test db executa os arquivos SQL em supabase/tests/ dentro de transacoes que terminam em rollback.

Os testes desta fundacao cobrem:

  • presenca das 15 tabelas e ausencia de views public sobre dados internos;
  • ENABLE ROW LEVEL SECURITY e FORCE ROW LEVEL SECURITY;
  • isolamento entre workspaces A e B para member, admin e owner;
  • ausencia de acesso anonimo;
  • ausencia de DML direto para authenticated, inclusive admins;
  • grants server-side minimos para fatos append-only e workflows mutaveis;
  • invariante approved_amount = incurred_amount + outstanding_amount;
  • 18 FKs legacy compostas NOT VALID, todas testadas contra cross-tenant;
  • bloqueio de UPDATE e DELETE em fatos append-only;
  • transicoes monotonicamente terminais de sync runs;
  • ranges sem overlap para mappings e contract terms aprovados;
  • tres maturidades e coberturas independentes em quality snapshots;
  • preservacao de desconhecido como null acompanhado de reason code.

Diagnostico

Confirme o daemon antes de repetir um reset:

docker info
supabase status

Se o daemon estiver parado, o CLI falha antes de criar o banco local. Inicie o runtime Docker e repita os dois comandos de validacao. Erros em migrations anteriores devem ser corrigidos na migration proprietaria; esta migration nao deve alterar objetos de outros produtos para contornar legado local.

Ultima verificacao local

Em 2026-08-21, com Supabase CLI 2.114.0, o daemon OrbStack nao estava em execucao:

  • supabase db reset falhou ao acessar /Users/macvini/.orbstack/run/docker.sock (no such file or directory);
  • supabase test db falhou com ECONNREFUSED 127.0.0.1:54322 porque o banco local nao chegou a iniciar;
  • a migration foi aplicada com sucesso a um cluster PostgreSQL 18 temporario;
  • fixtures, SQL dinamico, erros esperados, grants, RLS, constraints, overlaps e transicoes foram executados nesse cluster com um shim local minimo de pgTAP. Essa verificacao adicional nao substitui o reset PostgreSQL 17 nem a execucao da extensao pgTAP real assim que o daemon estiver disponivel.