diff --git a/app/forms/new_phone_form.rb b/app/forms/new_phone_form.rb index fe5850d6e23..8492f7daf25 100644 --- a/app/forms/new_phone_form.rb +++ b/app/forms/new_phone_form.rb @@ -74,10 +74,12 @@ def extra_analytics_attributes end def validate_not_voip - return if phone.blank? || !FeatureManagement.voip_block? + return if phone.blank? @phone_info = Telephony.phone_info(phone) + return unless FeatureManagement.voip_block? + if @phone_info.type == :voip && !FeatureManagement.voip_allowed_phones.include?(parsed_phone.e164) errors.add(:phone, I18n.t('errors.messages.voip_check_error')) diff --git a/spec/forms/new_phone_form_spec.rb b/spec/forms/new_phone_form_spec.rb index 65446dd1534..cc22ecfc1f2 100644 --- a/spec/forms/new_phone_form_spec.rb +++ b/spec/forms/new_phone_form_spec.rb @@ -193,10 +193,11 @@ expect(FeatureManagement).to receive(:voip_block?).and_return(false) end - it 'allows voip numbers, does not even make a voip check' do - expect(Telephony).to_not receive(:phone_info) + it 'does a voip check but does not enforce it' do + expect(Telephony).to receive(:phone_info).and_call_original expect(result.success?).to eq(true) + expect(result.to_h).to include(phone_type: :voip) end end end