diff options
author | Akihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp> | 2018-02-18 06:35:05 +0900 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2018-02-17 22:35:05 +0100 |
commit | 9b8a4484778fb55bcb2526992807a51270229b72 (patch) | |
tree | 7dad9ae3df644227645b7607a97776e8602a56dc /spec | |
parent | a71af984011ff98df2fa1b7f6c983706a91d99bf (diff) |
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.
Diffstat (limited to 'spec')
-rw-r--r-- | spec/models/setting_spec.rb | 13 | ||||
-rw-r--r-- | spec/presenters/instance_presenter_spec.rb | 12 | ||||
-rw-r--r-- | spec/rails_helper.rb | 2 |
3 files changed, 13 insertions, 14 deletions
diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb index bbba5f98d..1cc528674 100644 --- a/spec/models/setting_spec.rb +++ b/spec/models/setting_spec.rb @@ -42,11 +42,6 @@ RSpec.describe Setting, type: :model do described_class[key] 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 before do 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) 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 expect(described_class[key]).to eq cache_value end diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb index 7c47aed61..006403925 100644 --- a/spec/presenters/instance_presenter_spec.rb +++ b/spec/presenters/instance_presenter_spec.rb @@ -90,9 +90,7 @@ describe InstancePresenter do describe "user_count" do it "returns the number of site users" do - cache = double - allow(Rails).to receive(:cache).and_return(cache) - allow(cache).to receive(:fetch).with("user_count").and_return(123) + Rails.cache.write 'user_count', 123 expect(instance_presenter.user_count).to eq(123) end @@ -100,9 +98,7 @@ describe InstancePresenter do describe "status_count" do it "returns the number of local statuses" do - cache = double - allow(Rails).to receive(:cache).and_return(cache) - allow(cache).to receive(:fetch).with("local_status_count").and_return(234) + Rails.cache.write 'local_status_count', 234 expect(instance_presenter.status_count).to eq(234) end @@ -110,9 +106,7 @@ describe InstancePresenter do describe "domain_count" do it "returns the number of known domains" do - cache = double - allow(Rails).to receive(:cache).and_return(cache) - allow(cache).to receive(:fetch).with("distinct_domain_count").and_return(345) + Rails.cache.write 'distinct_domain_count', 345 expect(instance_presenter.domain_count).to eq(345) end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 4f7399505..dc1f32e08 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -51,6 +51,8 @@ RSpec.configure do |config| end config.after :each do + Rails.cache.clear + keys = Redis.current.keys Redis.current.del(keys) if keys.any? end |