Skip to content

Commit

Permalink
Move en-US.yml's cell_phone entry to the correct position
Browse files Browse the repository at this point in the history
`PhoneNumber.cell_phone` expects an i18n key of `cell_phone.formats`,
but the en-US.yml file currently has `faker.phone_number.cell_phone`
instead of `faker.cell_phone`.

The result of that mismatch is that `cell_phone` will ignore the defined
formats, and potentially generate invalid US numbers (e.g. those with an
area code beginning with 1) when the locale is en-US.

31d99d1 reworked YAML structure and
appears to have inadvertently moved the key.

You can see the change in US number behavior in a console:

  Faker::Config.locale = "en-US"
  Faker::PhoneNumber.translate("faker.cell_phone.formats")

On 3.3.0 this returns

  ["###-###-####", "(###) ###-####", "###.###.####", "### ### ####"]

because it's the fallback value within the `en` (not `en-US`) locale
file. The correct value should be the formats outdented in this commit.
  • Loading branch information
aprescott committed Mar 27, 2024
1 parent 3c85321 commit 24a4b19
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
20 changes: 10 additions & 10 deletions lib/locales/en-US.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6949,16 +6949,16 @@ en-US:
- "(#{PhoneNumber.area_code}) #{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}"
- "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}"
- "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number} x#{PhoneNumber.extension}"
cell_phone:
formats:
- "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "(#{PhoneNumber.area_code}) #{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number}"
- "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "(#{PhoneNumber.area_code}) #{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number}"
cell_phone:
formats:
- "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "(#{PhoneNumber.area_code}) #{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number}"
- "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "(#{PhoneNumber.area_code}) #{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "#{PhoneNumber.area_code}-#{PhoneNumber.exchange_code}-#{PhoneNumber.subscriber_number}"
- "#{PhoneNumber.area_code}.#{PhoneNumber.exchange_code}.#{PhoneNumber.subscriber_number}"
id_number:
valid: "#{IdNumber.ssn_valid}"
invalid:
Expand Down
7 changes: 7 additions & 0 deletions test/test_en_us_locale.rb
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,13 @@ def test_validity_of_phone_method_output
assert_match(us_number_validation_regex, Faker::PhoneNumber.phone_number)
end

def test_en_us_specific_phone_formats
en_translations = I18n.translate('faker.cell_phone.formats', locale: :en, raise: true)
en_us_translations = I18n.translate('faker.cell_phone.formats', locale: Faker::Config.locale, raise: true)

refute_equal en_translations, en_us_translations
end

def test_en_us_invalid_state_raises_exception
assert_raise(I18n::MissingTranslationData) { Faker::Address.zip_code(state_abbreviation: 'NA') }
end
Expand Down

0 comments on commit 24a4b19

Please sign in to comment.