62 lines
1.7 KiB
Ruby
62 lines
1.7 KiB
Ruby
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe Channel::Driver::Sms::Massenversand do
|
|
let(:gateway) { 'https://gate1.goyyamobile.com/sms/sendsms.asp' }
|
|
let(:message_body) { 'Test' }
|
|
let(:receiver_number) { '+37060010000' }
|
|
let(:sender_number) { '+491000000000' }
|
|
let(:token) { '00q1234123423r5rwefdfsfsfef' }
|
|
let(:url) { "#{gateway}?#{params}" }
|
|
let(:params) do
|
|
URI.encode_www_form(
|
|
authToken: token,
|
|
getID: 1,
|
|
msg: message_body,
|
|
msgtype: 'c',
|
|
receiver: receiver_number,
|
|
sender: sender_number
|
|
)
|
|
end
|
|
let(:channel) do
|
|
create(:channel,
|
|
options: {
|
|
adapter: 'sms/massenversand',
|
|
gateway: gateway,
|
|
sender: sender_number,
|
|
token: token
|
|
},
|
|
created_by_id: 1,
|
|
updated_by_id: 1)
|
|
end
|
|
let(:instance) { described_class.new }
|
|
|
|
context 'when gateway returns OK' do
|
|
|
|
before do
|
|
stub_request(:get, url).to_return(body: 'OK')
|
|
end
|
|
|
|
it 'passes' do
|
|
expect(instance.send(channel.options, { recipient: receiver_number, message: message_body })).to be true
|
|
end
|
|
end
|
|
|
|
context 'when gateway response is invalid' do
|
|
|
|
before do
|
|
stub_request(:get, url).to_return(body: body)
|
|
end
|
|
|
|
context 'when receiver is blocked' do
|
|
let(:body) { 'blocked receiver ()' }
|
|
|
|
it 'raises RuntimeError' do # rubocop:disable RSpec/MultipleExpectations
|
|
expect { instance.send(channel.options, { recipient: receiver_number, message: message_body }) }.to raise_error { |error|
|
|
expect(error.message).not_to include(body)
|
|
}
|
|
end
|
|
end
|
|
end
|
|
end
|