config.consider_all_requests_local = true
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.
config.action_dispatch.show_exceptions = false
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)
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
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
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
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
end
config.after :each do
+ Rails.cache.clear
+
keys = Redis.current.keys
Redis.current.del(keys) if keys.any?
end