require 'rails_helper' RSpec.describe ConsolidacaoEntrega, type: :model do describe 'validações' do it 'exige tracking_id, motorista_nome, tipo e valor_aplicado' do ce = ConsolidacaoEntrega.new ce.valid? expect(ce.errors[:tracking_id]).to be_present expect(ce.errors[:motorista_nome]).to be_present expect(ce.errors[:valor_aplicado]).to be_present end it 'rejeita valor_aplicado negativo' do expect(build(:consolidacao_entrega, valor_aplicado: -1)).not_to be_valid end it 'exige tracking_id único por consolidação' do consolidacao = create(:consolidacao) create(:consolidacao_entrega, consolidacao: consolidacao, tracking_id: 'TRK-1') dup = build(:consolidacao_entrega, consolidacao: consolidacao, tracking_id: 'TRK-1') expect(dup).not_to be_valid end it 'permite o mesmo tracking_id em consolidações diferentes' do create(:consolidacao_entrega, tracking_id: 'TRK-X') outra = build(:consolidacao_entrega, tracking_id: 'TRK-X') expect(outra).to be_valid end end describe '#tipo_cor' do it 'retorna o mapa de cores do tipo' do ce = build(:consolidacao_entrega, tipo: :retirada) expect(ce.tipo_cor[:label]).to eq('Retirada') end end end