1234567891011121314151617181920212223242526272829 |
- RSpec.shared_examples 'ApplicationModel::CanAssociations' do
- subject { create(described_class.name.underscore) }
- describe '#attributes_with_association_ids (for supplying model data to front-end framework)' do
- describe 'caching' do
- let(:cache_key) { "#{described_class}::aws::#{subject.id}" }
- context 'with empty cache' do
- it 'stores the computed value in the cache' do
- expect { subject.attributes_with_association_ids }
- .to change { Rails.cache.read(cache_key) }
- end
- end
- context 'with stored value in cache' do
- before { Rails.cache.write(cache_key, { foo: 'bar' }) }
- it 'returns the cached value' do
- expect(subject.attributes_with_association_ids).to include(foo: 'bar')
- end
- it 'does not modify the cached value' do
- expect { subject.attributes_with_association_ids }
- .not_to change { Rails.cache.read(cache_key) }
- end
- end
- end
- end
- end
|