diff --git a/app/controllers/extra_locales_controller.rb b/app/controllers/extra_locales_controller.rb index f42aca971fd..c37d674994c 100644 --- a/app/controllers/extra_locales_controller.rb +++ b/app/controllers/extra_locales_controller.rb @@ -74,9 +74,14 @@ class ExtraLocalesController < ApplicationController [js, digest_for_content(js)] end - def clear_cache! + def clear_cache!(all_sites: false) site = RailsMultisite::ConnectionManagement.current_db - js_digests[:site_specific].delete(site) + if all_sites + js_digests[:site_specific].clear + js_digests[:shared].clear + else + js_digests[:site_specific].delete(site) + end end def digest_for_content(js) diff --git a/spec/requests/extra_locales_controller_spec.rb b/spec/requests/extra_locales_controller_spec.rb index e0e6c16ddfe..ce2b13c9ee0 100644 --- a/spec/requests/extra_locales_controller_spec.rb +++ b/spec/requests/extra_locales_controller_spec.rb @@ -2,6 +2,9 @@ RSpec.describe ExtraLocalesController do around { |example| allow_missing_translations(&example) } + + after { ExtraLocalesController.clear_cache!(all_sites: true) } + let(:fake_digest) { "a" * 40 } describe "#show" do