6.0 KiB
6.0 KiB
📊 Scripts de Dados de Teste - SIGEFP
Este diretório contém scripts SQL para popular o banco de dados com dados de teste completos.
📋 Scripts Disponíveis
1. insert_all_test_data.sql (BASE)
O que faz:
- Cria a estrutura base de dados de teste
- Popula tabelas fundamentais: ministérios, unidades orgânicas, cargos
- Cria estrutura salarial completa
- Adiciona tipos de proventos e descontos
- Cria agentes, contratos e contas bancárias
- Cria ano fiscal e linhas orçamentárias
- Adiciona um período de folha básico
Quando usar:
- Primeira carga de dados de teste
- Reset do banco de dados de desenvolvimento
- Base para testes unitários
Execução:
\i sigefp-database/insert_all_test_data.sql
2. insert_functional_test_data.sql (COMPLEMENTAR)
O que faz:
- Adiciona períodos de folha adicionais (Fevereiro, Março 2025)
- Cria execuções de folha completas com status COMPLETED
- Adiciona itens de folha completos com todos os cálculos:
- Vencimento Base
- Abono de Família
- INPS (7%)
- IRPS (escalonado)
- Imposto de Selo (0.3%)
- Cria execuções orçamentárias (COMMITMENT, LIQUIDATION, PAYMENT)
- Adiciona lotes de pagamento
- Cria ordens de pagamento geradas a partir da folha
- Adiciona confirmações de pagamento do tesouro
- Completa o fluxo RH → Budget → Treasury
Quando usar:
- Após executar
insert_all_test_data.sql - Para testes funcionais completos
- Para testar fluxos end-to-end
- Para validar integrações entre módulos
Execução:
\i sigefp-database/insert_functional_test_data.sql
3. insert_complete_test_data.sql (ALTERNATIVO)
O que faz:
- Versão simplificada que usa dados existentes
- Adiciona dados complementares básicos
- Útil quando já existe alguma estrutura no banco
Quando usar:
- Quando já há dados no banco e quer apenas complementar
- Para adicionar dados específicos sem sobrescrever
🚀 Sequência Recomendada de Execução
Para Testes Completos:
-- 1. Executar script base
\i sigefp-database/insert_all_test_data.sql
-- 2. Executar script complementar para testes funcionais
\i sigefp-database/insert_functional_test_data.sql
Para Testes Básicos:
-- Apenas o script base
\i sigefp-database/insert_all_test_data.sql
📊 Dados Criados
Após insert_all_test_data.sql:
- ✅ 3 Ministérios
- ✅ 4 Unidades Orgânicas
- ✅ 4 Cargos
- ✅ 3 Bancos
- ✅ 1 Ano Fiscal (2025)
- ✅ 3 Linhas Orçamentárias
- ✅ 3 Alocações Orçamentárias
- ✅ Estrutura Salarial Completa
- ✅ 3 Tipos de Proventos
- ✅ 3 Tipos de Descontos
- ✅ Regras Globais de Desconto
- ✅ 5 Escalões de IRPS
- ✅ 5 Agentes
- ✅ 3 Contas Bancárias
- ✅ 2 Contratos
- ✅ 1 Período de Folha (Janeiro 2025)
- ✅ 1 Execução de Folha (DRAFT)
- ✅ 3 Itens de Folha Básicos
Após insert_functional_test_data.sql:
- ✅ +2 Períodos de Folha (Fevereiro, Março)
- ✅ +2 Execuções de Folha (COMPLETED)
- ✅ +12 Itens de Folha Completos (com todos os cálculos)
- ✅ 6 Execuções Orçamentárias (COMMITMENT, LIQUIDATION, PAYMENT)
- ✅ 2 Lotes de Pagamento
- ✅ 3 Ordens de Pagamento
- ✅ 3 Confirmações de Pagamento do Tesouro
- ✅ Fluxo completo RH → Budget → Treasury
🧪 Cenários de Teste Cobertos
✅ Testes Unitários:
- Cálculos de INPS, IRPS e Selo
- Geração de itens de folha
- Validações de saldo orçamentário
- Criação de ordens de pagamento
✅ Testes de Integração:
- Fluxo completo: Folha → Compromisso → Liquidação → Pagamento
- Integração RH → Budget
- Integração Treasury → Budget
- Validações cruzadas entre módulos
✅ Testes Funcionais:
- Processamento de folha completa
- Geração de lotes de pagamento
- Confirmação de pagamentos
- Consultas e relatórios
- Dashboard com dados reais
📝 Notas Importantes
-
Ordem de Execução: Sempre execute
insert_all_test_data.sqlantes deinsert_functional_test_data.sql -
Conflitos: Os scripts usam
ON CONFLICT DO NOTHING, então podem ser executados múltiplas vezes sem erro -
IDs Fixos: Alguns IDs são fixos (UUIDs) para facilitar testes e referências
-
Dados Realistas: Os valores são baseados em valores típicos de Guiné-Bissau (em Francos CFA)
-
Cálculos: Os valores de descontos são calculados corretamente:
- INPS: 7% sobre o bruto
- Selo: 0.3% sobre o bruto
- IRPS: Escalonado conforme faixas (10-25%)
🔍 Verificação dos Dados
Após executar os scripts, você pode verificar os dados com:
-- Verificar contagens
SELECT 'PERIODOS FOLHA' as tipo, COUNT(*)::text as total
FROM payroll_period WHERE fiscal_year = 2025
UNION ALL
SELECT 'EXECUCOES FOLHA', COUNT(*)::text
FROM payroll_run WHERE period_id IN (
SELECT id FROM payroll_period WHERE fiscal_year = 2025
)
UNION ALL
SELECT 'ITENS FOLHA', COUNT(*)::text
FROM payroll_item WHERE payroll_run_id IN (
SELECT id FROM payroll_run WHERE period_id IN (
SELECT id FROM payroll_period WHERE fiscal_year = 2025
)
)
UNION ALL
SELECT 'EXECUCOES ORCAMENTARIAS', COUNT(*)::text
FROM budget_execution WHERE period_id >= 202501
UNION ALL
SELECT 'LOTES PAGAMENTO', COUNT(*)::text
FROM payment_batch WHERE period_id >= 202501
UNION ALL
SELECT 'ORDENS PAGAMENTO', COUNT(*)::text
FROM payment_order WHERE payment_batch_id IN (
SELECT id FROM payment_batch WHERE period_id >= 202501
)
UNION ALL
SELECT 'CONFIRMACOES TESOURO', COUNT(*)::text
FROM treasury_payment WHERE payment_order_id IN (
SELECT id FROM payment_order WHERE payment_batch_id IN (
SELECT id FROM payment_batch WHERE period_id >= 202501
)
)
ORDER BY tipo;
🎯 Próximos Passos
Com esses dados, você pode:
- ✅ Testar todas as funcionalidades do sistema
- ✅ Validar cálculos de folha de pagamento
- ✅ Testar integrações entre módulos
- ✅ Validar fluxos de negócio completos
- ✅ Testar relatórios e dashboards
- ✅ Validar regras de negócio do Decreto 12-A/94
Última atualização: 2024-12-22