Sha256: 8b1ee11a01d63a784ac4b014a31ac23dea6a9390cebcb59d0b0202a2820564d9

Contents?: true

Size: 1.41 KB

Versions: 2

Compression:

Stored size: 1.41 KB

Contents

# frozen_string_literal: true

RSpec.describe TwilioBase::PhoneNumber do
  describe '.find_or_create' do
    before do
      ENV['COUNTRY_CODE'] = 'GB'
    end

    after do
      ENV['COUNTRY_CODE'] = nil
    end

    context 'phone number exists' do
      it 'does not create a new phone number' do
        number = FactoryBot.generate(:phone_number)
        phone_number = TwilioBase::Fake::IncomingPhoneNumber
          .new.create(phone_number: number)

        expect { described_class.find_or_create(phone_number.phone_number) }
          .not_to(
            change { TwilioBase::Fake::IncomingPhoneNumber.phone_numbers.count }
          )
      end

      it 'returns the phone number' do
        number = FactoryBot.generate(:phone_number)
        phone_number = TwilioBase::Fake::IncomingPhoneNumber
          .new.create(phone_number: number)

        expect(described_class.find_or_create(phone_number.phone_number))
          .to eq phone_number
      end
    end

    context 'phone number does not exist' do
      it 'does creates a new phone number' do
        expect { described_class.find_or_create(nil) }
          .to change {
            TwilioBase::Fake::IncomingPhoneNumber.phone_numbers.count
          }.by(1)
      end

      it 'returns the phone number' do
        expect(described_class.find_or_create(nil))
          .to eq TwilioBase::Fake::IncomingPhoneNumber.phone_numbers.last
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
twilio_base-1.9.0 spec/services/twilio_base/phone_number_spec.rb
twilio_base-1.8.0 spec/services/twilio_base/phone_number_spec.rb