require 'rails_helper'

describe LocalesHelper do

  context "Language names" do

    let!(:default_enforce) { I18n.enforce_available_locales }

    before do
      I18n.enforce_available_locales = false
    end

    after do
      I18n.backend.reload!
      I18n.enforce_available_locales = default_enforce
    end

    it "returns the language name in i18n.language.name translation" do
      keys = { language: {
                 name: "World Language" }}

      I18n.backend.store_translations(:wl, { i18n: keys })

      expect(name_for_locale(:wl)).to eq("World Language")
    end

    it "retuns the locale key if i18n.language.name translation is not found" do
      expect(name_for_locale(:wl)).to eq("wl")
    end

  end
end
require 'rails_helper'

describe LocalesHelper do

  context "Language names" do

    let!(:default_enforce) { I18n.enforce_available_locales }

    before do
      I18n.enforce_available_locales = false
    end

    after do
      I18n.backend.reload!
      I18n.enforce_available_locales = default_enforce
      I18n.backend.send(:init_translations)
    end

    it "returns the language name in i18n.language.name translation" do
      keys = { language: {
                 name: "World Language" }}

      I18n.backend.store_translations(:wl, { i18n: keys })

      expect(name_for_locale(:wl)).to eq("World Language")
    end

    it "retuns the locale key if i18n.language.name translation is not found" do
      expect(name_for_locale(:wl)).to eq("wl")
    end

  end
end

Fix flaky spec for translations
Fix flaky spec for translations

This spec was causing a side effect on another spec[2], making it fail 😌

I think it was because no translation had been called yet, in the failing spec, and so the the i18n backend translations had not been initialized, and was always returning empty translations for any locale. This might have been due to tampering with translations in the this newly introduced spec.

By forcing translations to load after this new spec, the other spec passes again

[2] https://github.com/AyuntamientoMadrid/consul/blob/master/spec/features/localization_spec.rb#L20
