Isolate each specs for cache store (#6450)
The cache store is explicitly used by some specs, but they were not isolated and therefore not reliable. This fixes the issue by clearing the cache after each specs.main
parent
a71af98401
commit
9b8a448477
|
@ -23,6 +23,10 @@ Rails.application.configure do
|
||||||
config.consider_all_requests_local = true
|
config.consider_all_requests_local = true
|
||||||
config.action_controller.perform_caching = false
|
config.action_controller.perform_caching = false
|
||||||
|
|
||||||
|
# The default store, file_store is shared by processses parallely executed
|
||||||
|
# and should not be used.
|
||||||
|
config.cache_store = :memory_store
|
||||||
|
|
||||||
# Raise exceptions instead of rendering exception templates.
|
# Raise exceptions instead of rendering exception templates.
|
||||||
config.action_dispatch.show_exceptions = false
|
config.action_dispatch.show_exceptions = false
|
||||||
|
|
||||||
|
|
|
@ -42,11 +42,6 @@ RSpec.describe Setting, type: :model do
|
||||||
described_class[key]
|
described_class[key]
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'calls Rails.cache.fetch' do
|
|
||||||
expect(Rails).to receive_message_chain(:cache, :fetch).with(cache_key)
|
|
||||||
described_class[key]
|
|
||||||
end
|
|
||||||
|
|
||||||
context 'Rails.cache does not exists' do
|
context 'Rails.cache does not exists' do
|
||||||
before do
|
before do
|
||||||
allow(RailsSettings::Settings).to receive(:object).with(key).and_return(object)
|
allow(RailsSettings::Settings).to receive(:object).with(key).and_return(object)
|
||||||
|
@ -103,6 +98,14 @@ RSpec.describe Setting, type: :model do
|
||||||
Rails.cache.write(cache_key, cache_value)
|
Rails.cache.write(cache_key, cache_value)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'does not query the database' do
|
||||||
|
expect do |callback|
|
||||||
|
ActiveSupport::Notifications.subscribed callback, 'sql.active_record' do
|
||||||
|
described_class[key]
|
||||||
|
end
|
||||||
|
end.not_to yield_control
|
||||||
|
end
|
||||||
|
|
||||||
it 'returns the cached value' do
|
it 'returns the cached value' do
|
||||||
expect(described_class[key]).to eq cache_value
|
expect(described_class[key]).to eq cache_value
|
||||||
end
|
end
|
||||||
|
|
|
@ -90,9 +90,7 @@ describe InstancePresenter do
|
||||||
|
|
||||||
describe "user_count" do
|
describe "user_count" do
|
||||||
it "returns the number of site users" do
|
it "returns the number of site users" do
|
||||||
cache = double
|
Rails.cache.write 'user_count', 123
|
||||||
allow(Rails).to receive(:cache).and_return(cache)
|
|
||||||
allow(cache).to receive(:fetch).with("user_count").and_return(123)
|
|
||||||
|
|
||||||
expect(instance_presenter.user_count).to eq(123)
|
expect(instance_presenter.user_count).to eq(123)
|
||||||
end
|
end
|
||||||
|
@ -100,9 +98,7 @@ describe InstancePresenter do
|
||||||
|
|
||||||
describe "status_count" do
|
describe "status_count" do
|
||||||
it "returns the number of local statuses" do
|
it "returns the number of local statuses" do
|
||||||
cache = double
|
Rails.cache.write 'local_status_count', 234
|
||||||
allow(Rails).to receive(:cache).and_return(cache)
|
|
||||||
allow(cache).to receive(:fetch).with("local_status_count").and_return(234)
|
|
||||||
|
|
||||||
expect(instance_presenter.status_count).to eq(234)
|
expect(instance_presenter.status_count).to eq(234)
|
||||||
end
|
end
|
||||||
|
@ -110,9 +106,7 @@ describe InstancePresenter do
|
||||||
|
|
||||||
describe "domain_count" do
|
describe "domain_count" do
|
||||||
it "returns the number of known domains" do
|
it "returns the number of known domains" do
|
||||||
cache = double
|
Rails.cache.write 'distinct_domain_count', 345
|
||||||
allow(Rails).to receive(:cache).and_return(cache)
|
|
||||||
allow(cache).to receive(:fetch).with("distinct_domain_count").and_return(345)
|
|
||||||
|
|
||||||
expect(instance_presenter.domain_count).to eq(345)
|
expect(instance_presenter.domain_count).to eq(345)
|
||||||
end
|
end
|
||||||
|
|
|
@ -51,6 +51,8 @@ RSpec.configure do |config|
|
||||||
end
|
end
|
||||||
|
|
||||||
config.after :each do
|
config.after :each do
|
||||||
|
Rails.cache.clear
|
||||||
|
|
||||||
keys = Redis.current.keys
|
keys = Redis.current.keys
|
||||||
Redis.current.del(keys) if keys.any?
|
Redis.current.del(keys) if keys.any?
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue