FIX: EmberCli cache clearance issue in production (#24343)

This commit is contained in:
David Taylor 2023-11-13 10:34:06 +00:00 committed by GitHub
parent 4b78254065
commit 4982f95472
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 1 deletions

View File

@ -69,7 +69,7 @@ class EmberCli < ActiveSupport::CurrentAttributes
end
def self.clear_cache!
self.request.cache = nil
self.request_cache = nil
@production_cache = nil
end
end

View File

@ -6,4 +6,45 @@ describe EmberCli do
expect(EmberCli.ember_version).to match(/\A\d+\.\d+/)
end
end
describe "cache" do
after { EmberCli.clear_cache! }
def simulate_request_cache_clearance
# this method is defined by ActiveSupport::CurrentAttributes
# and is called before/after every web request
EmberCli.reset
end
context "in development" do
before { Rails.env.stubs(:development?).returns(true) }
it "cache works, and is cleared before/after each web request" do
EmberCli.cache[:foo] = "bar"
expect(EmberCli.cache[:foo]).to eq("bar")
simulate_request_cache_clearance
expect(EmberCli.cache[:foo]).to eq(nil)
end
end
context "in production" do
before { Rails.env.stubs(:development?).returns(false) }
it "cache works, and can be cleared" do
EmberCli.cache[:foo] = "bar"
expect(EmberCli.cache[:foo]).to eq("bar")
simulate_request_cache_clearance
# In production, persists across requests
expect(EmberCli.cache[:foo]).to eq("bar")
# But still can be manually cleared
EmberCli.clear_cache!
expect(EmberCli.cache[:foo]).to eq(nil)
end
end
end
end