From d00e45a7d369790a69effd49a067977da18cddd9 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Sun, 30 Apr 2023 08:07:03 -0400 Subject: [PATCH] Fix Rails/I18nLocaleAssignment cop (#24693) --- .rubocop_todo.yml | 8 ------ .../auth/registrations_controller_spec.rb | 6 ++--- spec/helpers/application_helper_spec.rb | 26 +++++++++---------- spec/requests/localization_spec.rb | 6 +++-- 4 files changed, 19 insertions(+), 27 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index fe22385a7f..171a11a0a1 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -1335,14 +1335,6 @@ Rails/HasManyOrHasOneDependent: - 'app/models/user.rb' - 'app/models/web/push_subscription.rb' -# Configuration parameters: Include. -# Include: spec/**/*.rb, test/**/*.rb -Rails/I18nLocaleAssignment: - Exclude: - - 'spec/controllers/auth/registrations_controller_spec.rb' - - 'spec/helpers/application_helper_spec.rb' - - 'spec/requests/localization_spec.rb' - Rails/I18nLocaleTexts: Exclude: - 'lib/tasks/mastodon.rake' diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb index fffa7e06d7..5c422bdffc 100644 --- a/spec/controllers/auth/registrations_controller_spec.rb +++ b/spec/controllers/auth/registrations_controller_spec.rb @@ -104,9 +104,9 @@ RSpec.describe Auth::RegistrationsController, type: :controller do end around do |example| - current_locale = I18n.locale - example.run - I18n.locale = current_locale + I18n.with_locale(I18n.locale) do + example.run + end end before { request.env['devise.mapping'] = Devise.mappings[:user] } diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index 88751548fc..220eb2c80b 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -44,30 +44,28 @@ describe ApplicationHelper do end describe 'locale_direction' do - around do |example| - current_locale = I18n.locale - example.run - I18n.locale = current_locale - end - it 'adds rtl body class if locale is Arabic' do - I18n.locale = :ar - expect(helper.locale_direction).to eq 'rtl' + I18n.with_locale(:ar) do + expect(helper.locale_direction).to eq 'rtl' + end end it 'adds rtl body class if locale is Farsi' do - I18n.locale = :fa - expect(helper.locale_direction).to eq 'rtl' + I18n.with_locale(:fa) do + expect(helper.locale_direction).to eq 'rtl' + end end it 'adds rtl if locale is Hebrew' do - I18n.locale = :he - expect(helper.locale_direction).to eq 'rtl' + I18n.with_locale(:he) do + expect(helper.locale_direction).to eq 'rtl' + end end it 'does not add rtl if locale is Thai' do - I18n.locale = :th - expect(helper.locale_direction).to_not eq 'rtl' + I18n.with_locale(:th) do + expect(helper.locale_direction).to_not eq 'rtl' + end end end diff --git a/spec/requests/localization_spec.rb b/spec/requests/localization_spec.rb index 39eeee5f01..b7fb53ed8d 100644 --- a/spec/requests/localization_spec.rb +++ b/spec/requests/localization_spec.rb @@ -3,8 +3,10 @@ require 'rails_helper' describe 'Localization' do - after(:all) do - I18n.locale = I18n.default_locale + around do |example| + I18n.with_locale(I18n.locale) do + example.run + end end it 'uses a specific region when provided' do