]> cat aescling's git repositories - mastodon.git/commitdiff
Ensure i18n matches options (#2358)
authorMatt Jankowski <mjankowski@thoughtbot.com>
Sun, 23 Apr 2017 17:09:52 +0000 (13:09 -0400)
committerEugen <eugen@zeonfederated.com>
Sun, 23 Apr 2017 17:09:52 +0000 (19:09 +0200)
* Add failing spec showing that human_locales does not match what i18n knows about

* Add missing `ar` key for arabic to human locales

* Remove duplicate `id` key from available locales

* Sort keys in human locales list

* Add spec for human_locale helper

app/helpers/settings_helper.rb
config/application.rb
spec/helpers/settings_helper_spec.rb [new file with mode: 0644]

index bc9ae9ee74954ce12e65beff2983052bff76cc87..128e1e98c26a84a374f2cfb2bd569d0db2199966 100644 (file)
@@ -3,29 +3,30 @@
 module SettingsHelper
   HUMAN_LOCALES = {
     en: 'English',
+    ar: 'عربى',
+    bg: 'Български',
     de: 'Deutsch',
-    es: 'Español',
     eo: 'Esperanto',
+    es: 'Español',
+    fi: 'Suomi',
     fr: 'Français',
     hr: 'Hrvatski',
     hu: 'Magyar',
+    id: 'Bahasa Indonesia',
     io: 'Ido',
     it: 'Italiano',
+    ja: '日本語',
     nl: 'Nederlands',
     no: 'Norsk',
     oc: 'Occitan',
     pl: 'Polszczyzna',
     pt: 'Português',
     'pt-BR': 'Português do Brasil',
-    fi: 'Suomi',
     ru: 'Русский',
     uk: 'Українська',
-    ja: '日本語',
     'zh-CN': '简体中文',
     'zh-HK': '繁體中文(香港)',
     'zh-TW': '繁體中文(臺灣)',
-    bg: 'Български',
-    id: 'Bahasa Indonesia',
   }.freeze
 
   def human_locale(locale)
index 03e98557dbbffa997eda7c055247d10f81545a72..50dc2a10b5690125ba54d3f4e1ea08ad06aa720b 100644 (file)
@@ -35,7 +35,6 @@ module Mastodon
       :fi,
       :fr,
       :hr,
-      :id,
       :hu,
       :id,
       :io,
diff --git a/spec/helpers/settings_helper_spec.rb b/spec/helpers/settings_helper_spec.rb
new file mode 100644 (file)
index 0000000..5a51e0e
--- /dev/null
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe SettingsHelper do
+  describe 'the HUMAN_LOCALES constant' do
+    it 'has the same number of keys as I18n locales exist' do
+      options = I18n.available_locales
+
+      expect(described_class::HUMAN_LOCALES.keys).to eq(options)
+    end
+  end
+
+  describe 'human_locale' do
+    it 'finds the human readable local description from a key' do
+      # Ensure the value is as we expect
+      expect(described_class::HUMAN_LOCALES[:en]).to eq('English')
+
+      expect(helper.human_locale(:en)).to eq('English')
+    end
+  end
+end