spec/unit/settings_spec.rb in activeadmin-0.6.6 vs spec/unit/settings_spec.rb in activeadmin-1.0.0.pre1
- old
+ new
@@ -1,25 +1,25 @@
-require 'spec_helper'
+require 'rails_helper'
describe ActiveAdmin::Settings do
subject{ Class.new{ include ActiveAdmin::Settings } }
- it{ should respond_to :setting }
- it{ should respond_to :deprecated_setting }
- it{ should respond_to :default_settings }
+ it{ is_expected.to respond_to :setting }
+ it{ is_expected.to respond_to :deprecated_setting }
+ it{ is_expected.to respond_to :default_settings }
describe "class API" do
it "should create settings" do
subject.setting :foo, 'bar'
- subject.default_settings[:foo].should eq 'bar'
+ expect(subject.default_settings[:foo]).to eq 'bar'
end
it "should create deprecated settings" do
- ActiveAdmin::Deprecation.should_receive(:deprecate).twice
+ expect(ActiveAdmin::Deprecation).to receive(:deprecate).twice
subject.deprecated_setting :baz, 32
- subject.default_settings[:baz].should eq 32
+ expect(subject.default_settings[:baz]).to eq 32
end
end
describe "instance API" do
@@ -28,20 +28,20 @@
subject.deprecated_setting :baz, 32
end
let(:instance) { subject.new }
it "should have access to a default value" do
- instance.foo.should eq 'bar'
+ expect(instance.foo).to eq 'bar'
instance.foo = 'qqq'
- instance.foo.should eq 'qqq'
+ expect(instance.foo).to eq 'qqq'
end
it "should have access to a deprecated value" do
- ActiveAdmin::Deprecation.should_receive(:warn).exactly(3).times
- instance.baz.should eq 32
+ expect(ActiveAdmin::Deprecation).to receive(:warn).exactly(3).times
+ expect(instance.baz).to eq 32
instance.baz = [45]
- instance.baz.should eq [45]
+ expect(instance.baz).to eq [45]
end
end
end
@@ -53,36 +53,66 @@
include ActiveAdmin::Settings
include ActiveAdmin::Settings::Inheritance
end
end
- it{ should respond_to :settings_inherited_by }
- it{ should respond_to :inheritable_setting }
- it{ should respond_to :deprecated_inheritable_setting }
+ it{ is_expected.to respond_to :settings_inherited_by }
+ it{ is_expected.to respond_to :inheritable_setting }
+ it{ is_expected.to respond_to :deprecated_inheritable_setting }
let(:heir) { Class.new }
before do
subject.settings_inherited_by heir
end
describe "class API" do
it "should add setting to an heir" do
subject.inheritable_setting :one, 2
- heir.default_settings[:one].should eq 2
+ expect(heir.default_settings[:one]).to eq 2
end
it "should add deprecated setting to an heir" do
- ActiveAdmin::Deprecation.should_receive(:deprecate).exactly(4).times
+ expect(ActiveAdmin::Deprecation).to receive(:deprecate).exactly(4).times
subject.deprecated_inheritable_setting :three, 4
- heir.default_settings[:three].should eq 4
+ expect(heir.default_settings[:three]).to eq 4
end
end
describe "instance API" do
- before{ subject.inheritable_setting :left, :right }
- it "should work" do
- heir.new.left.should eq :right
+ describe "the setter `config.left =`" do
+ before{ subject.inheritable_setting :left, :right }
+ it "should work" do
+ config = heir.new
+ config.left = :none
+ expect(config.left).to eq :none
+ end
+ end
+
+ describe "the getter `config.left`" do
+ before{ subject.inheritable_setting :left, :right }
+ it "should work" do
+ expect(heir.new.left).to eq :right
+ end
+ end
+
+ describe "the getter with question-mark `config.left?`" do
+ {
+ "nil" => [nil, false],
+ "false" => [false, false],
+ "true" => [true, true],
+ "string" => ["string", true],
+ "empty string" => ["", false],
+ "array" => [[1, 2], true],
+ "empty array" => [[], false]
+ }.each do |context, (value, result)|
+ context "with a #{context} value" do
+ before{ subject.inheritable_setting :left, value }
+ it "should be #{result}" do
+ expect(heir.new.left?).to eq result
+ end
+ end
+ end
end
end
end