Modificação na area do motorista
This commit is contained in:
@@ -32,6 +32,24 @@ RSpec.describe 'Visão por motorista', type: :request do
|
||||
expect(response.body).to include('R$ 120,00')
|
||||
end
|
||||
|
||||
# O default tem que ser o MESMO recorte do dashboard ("Consolidado / Pago"),
|
||||
# senão o operador compara as duas telas e vê valores diferentes.
|
||||
it 'sem status na URL mostra o CONSOLIDADO (rascunho fica de fora)' do
|
||||
consolidacao_finalizada(motorista: 'Carlos', valor: 120.0)
|
||||
rascunho = create(:consolidacao, status: :rascunho,
|
||||
data_inicio: Date.new(2026, 6, 1), data_fim: Date.new(2026, 6, 30))
|
||||
create(:consolidacao_entrega, consolidacao: rascunho, motorista_nome: 'Carlos', valor_aplicado: 500.0)
|
||||
create(:consolidacao_motorista, consolidacao: rascunho, motorista_nome: 'Carlos')
|
||||
sign_in create(:gerente)
|
||||
|
||||
get consolidacoes_path(periodo.merge(visao: 'motoristas'))
|
||||
expect(response.body).to include('R$ 120,00')
|
||||
expect(response.body).not_to include('R$ 620,00')
|
||||
|
||||
get consolidacoes_path(periodo.merge(visao: 'motoristas', status: 'todos'))
|
||||
expect(response.body).to include('R$ 620,00')
|
||||
end
|
||||
|
||||
it 'só abre a composição do motorista clicado' do
|
||||
consolidacao_finalizada(motorista: 'Carlos', valor: 120.0, nome: 'Fechamento Junho')
|
||||
consolidacao_finalizada(motorista: 'Pedro', valor: 90.0, nome: 'Fechamento do Pedro')
|
||||
|
||||
@@ -28,7 +28,7 @@ RSpec.describe Analytics::TotaisPorMotorista do
|
||||
consolidar(motorista: 'Carlos', valor: 50.0, qtd: 1) # 50
|
||||
consolidar(motorista: 'Pedro', valor: 30.0, qtd: 1) # 30
|
||||
consolidar(motorista: 'Carlos', valor: 999.0, status: :rascunho) # fora (rascunho)
|
||||
consolidar(motorista: 'Carlos', valor: 999.0, # fora (período)
|
||||
consolidar(motorista: 'Carlos', valor: 999.0, # fora (não cruza)
|
||||
data_inicio: Date.new(2026, 7, 1), data_fim: Date.new(2026, 7, 31))
|
||||
|
||||
expect(totais.linhas.map { |l| [l[:motorista], l[:valor_total]] })
|
||||
@@ -37,6 +37,29 @@ RSpec.describe Analytics::TotaisPorMotorista do
|
||||
expect(totais.total_consolidacoes).to eq(3)
|
||||
end
|
||||
|
||||
# ── Recorte de datas: o MESMO do dashboard financeiro ───────────────────
|
||||
# Quando estes dois casos divergiam do dashboard, o operador via dois valores
|
||||
# diferentes para o mesmo motorista no mesmo período e lia como erro de conta.
|
||||
it 'inclui a consolidação que CRUZA o período (não precisa caber inteira)' do
|
||||
# 20/05 a 20/06: começa antes do filtro, termina dentro.
|
||||
consolidar(motorista: 'Carlos', valor: 100.0,
|
||||
data_inicio: Date.new(2026, 5, 20), data_fim: Date.new(2026, 6, 20))
|
||||
# 20/06 a 20/07: começa dentro, termina depois.
|
||||
consolidar(motorista: 'Carlos', valor: 40.0,
|
||||
data_inicio: Date.new(2026, 6, 20), data_fim: Date.new(2026, 7, 20))
|
||||
|
||||
expect(totais.total_geral).to eq(140.0)
|
||||
end
|
||||
|
||||
it 'inclui a consolidação de outro período PAGA dentro do período' do
|
||||
_, cm = consolidar(motorista: 'Carlos', valor: 80.0,
|
||||
data_inicio: Date.new(2026, 4, 1), data_fim: Date.new(2026, 4, 30))
|
||||
cm.update!(pago_em: Time.zone.local(2026, 6, 10, 12, 0), forma_pagamento: 'pix')
|
||||
|
||||
expect(totais.total_geral).to eq(80.0)
|
||||
expect(totais.total_pago).to eq(80.0)
|
||||
end
|
||||
|
||||
it 'respeita o filtro de status (o mesmo select da lista)' do
|
||||
consolidar(motorista: 'Carlos', valor: 100.0)
|
||||
consolidar(motorista: 'Carlos', valor: 40.0, status: :rascunho)
|
||||
|
||||
Reference in New Issue
Block a user