diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-08-11 14:39:26 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-08-11 14:39:26 +0000 |
commit | 9c11894a656603c59c03d8f35fbe8cdf7a1ad0c4 (patch) | |
tree | 20a9dd6ba1f010a3554875bde87016261351a641 /spec/models | |
parent | eb03da693c57327df1426eb3057af252bfd299f6 (diff) | |
parent | 26bb50412ce44be434d7bb86a952397b7983deb5 (diff) | |
download | gitlab-ce-9c11894a656603c59c03d8f35fbe8cdf7a1ad0c4.tar.gz |
Merge branch 'appearances-caching-and-schema' into 'master'
Cache Appearance instances in Redis
Closes #36066 and #31698
See merge request !13433
Diffstat (limited to 'spec/models')
-rw-r--r-- | spec/models/appearance_spec.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/models/appearance_spec.rb b/spec/models/appearance_spec.rb index 7cd3a84d592..b5d5d58697b 100644 --- a/spec/models/appearance_spec.rb +++ b/spec/models/appearance_spec.rb @@ -9,4 +9,39 @@ RSpec.describe Appearance do it { is_expected.to validate_presence_of(:description) } it { is_expected.to have_many(:uploads).dependent(:destroy) } + + describe '.current', :use_clean_rails_memory_store_caching do + let!(:appearance) { create(:appearance) } + + it 'returns the current appearance row' do + expect(described_class.current).to eq(appearance) + end + + it 'caches the result' do + expect(described_class).to receive(:first).once + + 2.times { described_class.current } + end + end + + describe '#flush_redis_cache' do + it 'flushes the cache in Redis' do + appearance = create(:appearance) + + expect(Rails.cache).to receive(:delete).with(described_class::CACHE_KEY) + + appearance.flush_redis_cache + end + end + + describe '#single_appearance_row' do + it 'adds an error when more than 1 row exists' do + create(:appearance) + + new_row = build(:appearance) + new_row.save + + expect(new_row.valid?).to eq(false) + end + end end |