spec/tunable/setters_spec.rb in tunable-0.0.4 vs spec/tunable/setters_spec.rb in tunable-0.0.5
- old
+ new
@@ -1,6 +1,49 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
+describe 'basic setters' do
+
+ before :all do
+ load_main_settings!
+ @model = TunableModel.create(name: "Yay, I'm settable!")
+ end
+
+ describe '#set_setting' do
+
+ it 'stores new setting, without saving' do
+ @model.set_setting(:foo, :bar, 123)
+ expect(@model.get_setting(:foo, :bar)).to eq(nil)
+ expect(@model.settings_hash[:foo]).to eq(nil)
+ @model.save
+ @model.reload
+ expect(@model.get_setting(:foo, :bar)).to eq(123)
+ expect(@model.settings_hash[:foo]).to eq({ bar: 123 })
+ end
+
+ end
+
+ describe '#remove_setting' do
+
+ it 'stores new setting' do
+ @model.set_setting(:foo, :bar, 123)
+ @model.set_setting(:foo, :test, false)
+ @model.save
+ @model.reload
+ @model.remove_setting(:foo, :bar)
+ expect(@model.get_setting(:foo, :bar)).to eq(123)
+ @model.save
+ @model.reload
+ expect(@model.settings_hash[:foo]).to eq({ test: false })
+ @model.remove_setting(:foo, :test)
+ @model.save
+ @model.reload
+ expect(@model.settings_hash[:foo]).to eq(nil)
+ end
+
+ end
+
+end
+
describe 'main_setting setters' do
before :all do
load_main_settings!
@model = TunableModel.create(name: "Yay, I'm settable!")