require 'rails_helper' describe Appearance do subject { build(:appearance) } it { is_expected.to be_valid } it { is_expected.to validate_presence_of(:title) } 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