Implantação da geração de mensagem de forma livre e mudança na engine de mensagem
This commit is contained in:
35
spec/services/notificacao/whatsapp_spec.rb
Normal file
35
spec/services/notificacao/whatsapp_spec.rb
Normal file
@@ -0,0 +1,35 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Notificacao::Whatsapp do
|
||||
let(:config) { ConfiguracaoNotificacao.new(whatsapp_ativo: true) }
|
||||
|
||||
it 'recusa número que não dá para normalizar, sem chamar provedor nenhum' do
|
||||
expect(described_class).not_to receive(:via_baileys)
|
||||
resposta = described_class.enviar(para: '123', texto: 'oi', config: config)
|
||||
|
||||
expect(resposta).not_to be_ok
|
||||
expect(resposta.erro).to include('inválido')
|
||||
end
|
||||
|
||||
it 'usa a ponte Baileys quando o provedor é baileys' do
|
||||
config.whatsapp_provedor = 'baileys'
|
||||
ponte = instance_double(Notificacao::ClienteWhatsapp,
|
||||
enviar: Notificacao::ClienteWhatsapp::Resposta.new(ok: true))
|
||||
allow(Notificacao::ClienteWhatsapp).to receive(:padrao).and_return(ponte)
|
||||
|
||||
expect(described_class.enviar(para: '(11) 92005-1157', texto: 'oi', config: config)).to be_ok
|
||||
expect(ponte).to have_received(:enviar).with(para: '+5511920051157', texto: 'oi')
|
||||
end
|
||||
|
||||
it 'devolve erro em vez de levantar quando o Twilio falha' do
|
||||
config.whatsapp_provedor = 'twilio'
|
||||
allow(config).to receive(:credenciais_whatsapp)
|
||||
.and_return({ sid: 'AC1', token: 'x', from: 'whatsapp:+5511000000000' })
|
||||
allow(Notificacao::ClienteTwilio).to receive(:montar).and_raise(StandardError, 'rede fora')
|
||||
|
||||
resposta = described_class.enviar(para: '(11) 92005-1157', texto: 'oi', config: config)
|
||||
|
||||
expect(resposta).not_to be_ok
|
||||
expect(resposta.erro).to include('rede fora')
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user