Correção de horario e implantação da geração de Romaneio
This commit is contained in:
47
spec/services/romaneios/enriquecimento_gade_spec.rb
Normal file
47
spec/services/romaneios/enriquecimento_gade_spec.rb
Normal file
@@ -0,0 +1,47 @@
|
||||
require 'rails_helper'
|
||||
|
||||
# É o que dispensa a SEGUNDA PLANILHA do programa Python: o STATUS (NOVO/RECORRENTE)
|
||||
# já está na tabela da operação.
|
||||
RSpec.describe Romaneios::EnriquecimentoGade do
|
||||
include_context 'tabela de operação'
|
||||
|
||||
let(:tabela) { "#{Operacao::PREFIXO}teste_jan_2026" }
|
||||
|
||||
it 'marca APARELHO = SIM só para quem está como NOVO' do
|
||||
criar_operacao!(tabela)
|
||||
semear_operacao!(tabela, [
|
||||
{ nota_fiscal: '1', nome_completo: 'Novo Paciente', telefones: '(11) 1',
|
||||
status: 'NOVO' },
|
||||
{ nota_fiscal: '2', nome_completo: 'Velho Paciente', telefones: '(11) 2',
|
||||
status: 'RECORRENTE' }
|
||||
])
|
||||
|
||||
dados = described_class.new(tabela).para_notas(%w[1 2])
|
||||
|
||||
expect(dados['1'][:aparelho]).to eq('SIM')
|
||||
expect(dados['2'][:aparelho]).to eq('')
|
||||
expect(dados['1'][:nome]).to eq('NOVO PACIENTE')
|
||||
expect(dados['2'][:telefones]).to eq('(11) 2')
|
||||
end
|
||||
|
||||
it 'não quebra quando a operação não tem a coluna status — e AVISA qual falta' do
|
||||
criar_operacao!(tabela, colunas: %i[nome_completo telefones])
|
||||
semear_operacao!(tabela, [{ nota_fiscal: '1', nome_completo: 'Fulano', telefones: '(11) 1' }])
|
||||
|
||||
servico = described_class.new(tabela)
|
||||
|
||||
expect(servico.colunas_ausentes).to eq(['status'])
|
||||
expect(servico.para_notas(['1'])['1'][:aparelho]).to eq('')
|
||||
end
|
||||
|
||||
it 'omite a NF que não está na operação (é o plano avulso / de inclusão)' do
|
||||
criar_operacao!(tabela)
|
||||
semear_operacao!(tabela, [{ nota_fiscal: '1', status: 'NOVO' }])
|
||||
|
||||
expect(described_class.new(tabela).para_notas(%w[1 999])).not_to have_key('999')
|
||||
end
|
||||
|
||||
it 'recusa nome de tabela fora da whitelist de operações' do
|
||||
expect { described_class.new('users; DROP TABLE users') }.to raise_error(ArgumentError)
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user