From 48f03d8cc43509893e38f7a486cd62df87dfb1de Mon Sep 17 00:00:00 2001 From: Lucas Mazza Date: Thu, 11 Sep 2014 15:19:41 -0300 Subject: [PATCH] Ensure that the I18n backend is always initialized when we store custom translations. Depending on the test order, there might a moment when a test reloads the I18n backend and another tries to store a translation, but since the backend wasn't re-initialized the custom translations would be overriden when i18n loads the translations from the en.yml file. --- test/support/helpers.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/test/support/helpers.rb b/test/support/helpers.rb index 4eb0db86..02e5c8d1 100644 --- a/test/support/helpers.rb +++ b/test/support/helpers.rb @@ -8,12 +8,15 @@ class ActiveSupport::TestCase end def store_translations(locale, translations, &block) - begin - I18n.backend.store_translations(locale, translations) - yield - ensure - I18n.reload! - end + # Calling 'available_locales' before storing the translations to ensure + # that the I18n backend will be initialized before we store our custom + # translations, so they will always override the translations for the + # YML file. + I18n.available_locales + I18n.backend.store_translations(locale, translations) + yield + ensure + I18n.reload! end def generate_unique_email