mirror of https://github.com/tootsuite/mastodon
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.pull/6494/head
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