Sha256: 924bd71a4098a8a6d78b3375d281f9459fbc86cdab3e822bc1c4accd60875a7a
Contents?: true
Size: 1.27 KB
Versions: 25
Compression:
Stored size: 1.27 KB
Contents
RSpec.describe EasySetting, type: :model do let(:project) { FactoryBot.create(:project, name: 'My project') } let!(:easy_setting) { EasySetting.create(name: 'my_setting', value: 'my_value', project_id: project.id) } let!(:easy_setting_global) { EasySetting.create(name: 'my_setting', value: 'my_value_global') } # cleanup since easy_seting is persistent and # is not deleted from db after tests are run after :each do [easy_setting, easy_setting_global].each &:destroy end it 'creates a setting for a project' do expect( easy_setting ).to be_persisted end it 'destroys settings when the project is destroyed' do easy_setting expect{ easy_setting.project.destroy }.to change(EasySetting, :count).by(-1) end it 'updates cache when changed' do new_value = 'my_new_value' easy_setting_global.value = new_value easy_setting_global.save assert_equal new_value, EasySetting.value('my_setting') end it 'invalidates the cache when deleted' do easy_setting.destroy easy_setting_global.destroy assert_nil EasySetting.value('my_setting') end it 'fallbacks to global setting when project specific not present' do easy_setting.destroy assert_equal easy_setting_global.value, EasySetting.value('my_setting') end end
Version data entries
25 entries across 25 versions & 1 rubygems