# frozen_string_literal: true require 'spec_helper' require 'sms77/endpoint' require 'sms77/contacts_action' RSpec.describe Sms77, 'voice' do def assert_response(response) expect(response).to be_kind_of(String) code, id, cost = response.split("\n") expect(Integer(code)).to be_an_instance_of(Integer) expect(id.to_f).to be_an_instance_of(Float) if id != '' expect(cost.to_f).to be_an_instance_of(Float) end def request(text, extra_params = {}) stub = <<~TEXT 301 0.1 TEXT params = { to: Helper.virtual_inbound_nr_eplus, text: text, from: Helper.virtual_inbound_nr_eplus } .merge(extra_params) Helper.request(Sms77::Endpoint::VOICE, params, stub) end it 'calls a number with text input' do assert_response(request('Your glasses are ready for pickup.')) end it 'calls a number with xml input' do text = <<~XML Your glasses are ready for pickup. XML assert_response(request(text, { xml: 1 })) end end