Files
Reem-Notas/spec/factories.rb
victor 732c6daae8 Auditoria de bugs + suíte de testes RSpec
Correções:
- Erro de sintaxe em Admin::Usuarios#toggle_ativo (entidade: \'User\') que
  derrubava /admin/usuarios
- Migration fase2 readicionava coluna `ativo` sem guard (db:migrate do zero
  quebrava); db:seed colidia no índice único de email para motoristas
- Dashboard e HistoricoEstimado agora aplicam .da_conta_gade
- ConsolidacaoMotorista#recalcular_valor usa valor_aplicado (fonte única)
- Gate de finalização por motorista (antes soma agregada com >=) e validação
  de elegibilidade em classificar/classificar_em_massa
- Remove coluna órfã pin_acesso; registra autor do arquivamento
  (arquivado_por/arquivado_em + belongs_to :arquivador)
- Dashboard redireciona motorista; Date.parse tolerante
- Remove MotoristaController + view órfãos (não roteados e quebrados)

Testes: infra RSpec + factories + specs de models, policy e request.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 21:47:41 -03:00

56 lines
1.5 KiB
Ruby

FactoryBot.define do
factory :user do
sequence(:nome) { |n| "Usuario Teste #{n}" }
sequence(:email) { |n| "user#{n}@gade.com" }
password { 'Gade@2026!' }
role { :operador }
ativo { true }
factory :admin do role { :admin } end
factory :gerente do role { :gerente } end
factory :operador do role { :operador } end
factory :motorista do
role { :motorista }
# email é NOT NULL + único no banco; motorista real não tem e-mail, então
# usamos um placeholder único (mesma estratégia do db/seeds.rb).
sequence(:email) { |n| "motorista#{n}@motorista.local" }
password { nil }
sequence(:nome) { |n| "Motorista #{n}" }
sequence(:pin_code) { |n| format('%04d', n % 10000) }
end
end
factory :configuracao do
chave { 'empresa_nome' }
valor { 'Reem Transporte' }
end
factory :consolidacao do
sequence(:nome) { |n| "Consolidacao #{n}" }
data_inicio { Date.new(2026, 6, 1) }
data_fim { Date.new(2026, 6, 30) }
association :criador, factory: :gerente
status { :rascunho }
end
factory :consolidacao_motorista do
association :consolidacao
sequence(:motorista_nome) { |n| "Motorista #{n}" }
end
factory :consolidacao_entrega do
association :consolidacao
sequence(:tracking_id) { |n| "TRK-#{n}" }
motorista_nome { 'Joao Silva' }
tipo { :entrega_normal }
valor_aplicado { 15.0 }
end
factory :historico_estimado do
data_hora { Time.current }
valor_total_estimado { 150.0 }
entregas_contadas { 10 }
end
end