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

Version Path
redmine_extensions-1.2.0 spec/models/easy_setting_spec.rb
redmine_extensions-1.1.2 spec/models/easy_setting_spec.rb
redmine_extensions-1.1.1 spec/models/easy_setting_spec.rb
redmine_extensions-1.1.0 spec/models/easy_setting_spec.rb
redmine_extensions-1.0.0 spec/models/easy_setting_spec.rb
redmine_extensions-0.6.3 spec/models/easy_setting_spec.rb
redmine_extensions-0.6.2 spec/models/easy_setting_spec.rb
redmine_extensions-0.6.1 spec/models/easy_setting_spec.rb
redmine_extensions-0.6.0 spec/models/easy_setting_spec.rb
redmine_extensions-0.4.5 spec/models/easy_setting_spec.rb
redmine_extensions-0.5.1 spec/models/easy_setting_spec.rb
redmine_extensions-0.4.4 spec/models/easy_setting_spec.rb
redmine_extensions-0.4.3 spec/models/easy_setting_spec.rb
redmine_extensions-0.4.1 spec/models/easy_setting_spec.rb
redmine_extensions-0.4.0 spec/models/easy_setting_spec.rb
redmine_extensions-0.4.0.beta spec/models/easy_setting_spec.rb
redmine_extensions-0.3.11 spec/models/easy_setting_spec.rb
redmine_extensions-0.3.10 spec/models/easy_setting_spec.rb
redmine_extensions-0.3.9 spec/models/easy_setting_spec.rb
redmine_extensions-0.3.8 spec/models/easy_setting_spec.rb