spec/helpers_spec.rb in bikepoa-tools-0.2.0 vs spec/helpers_spec.rb in bikepoa-tools-0.3.0
- old
+ new
@@ -1,22 +1,42 @@
describe BikePOA::Helpers::ForceField do
- class DummySubject < Hashie::Dash
- include BikePOA::Helpers::ForceField
- property :number
- force_integer :number
- end
+ describe 'force integer' do
- let(:dummy) { DummySubject.new }
+ class DummySubject < Hashie::Dash
+ include BikePOA::Helpers::ForceField
+ property :normal
+ property :number
- describe 'force integer' do
- it "accepts any value that is castable to integer" do
- expect { dummy.number = '42' }.to_not raise_error(ArgumentError)
- expect { dummy.number = 42 }.to_not raise_error(ArgumentError)
- expect { dummy.number = 42.0 }.to_not raise_error(ArgumentError)
+ force_integer :number
end
- it "raises when the value is not castable to integer" do
- expect { dummy.number = "abc" }.to raise_error(ArgumentError)
- expect { dummy.number = "a12" }.to raise_error(ArgumentError)
+
+ describe "when setting property directly" do
+ let(:dummy) { DummySubject.new }
+
+ it "accepts any value that is castable to integer" do
+ expect { dummy.number = '42' }.to_not raise_error(ArgumentError)
+ expect { dummy.number = 42 }.to_not raise_error(ArgumentError)
+ expect { dummy.number = 42.0 }.to_not raise_error(ArgumentError)
+ end
+ it "raises when the value is not castable to integer" do
+ expect { dummy.number = "abc" }.to raise_error(ArgumentError)
+ expect { dummy.number = "a12" }.to raise_error(ArgumentError)
+ end
+ it 'lets you put anything into non-forced fields' do
+ expect { DummySubject.new(normal: 'abc1123') }.to_not raise_error
+ end
+ end
+
+ describe "when loading the Dash from a hash" do
+ it 'accepts values castable to integer' do
+ expect { DummySubject.new(number: '678') }.to_not raise_error(ArgumentError)
+ end
+ it "raises when one of the forced-fields is invalid" do
+ expect { DummySubject.new(number: "abc") }.to raise_error(ArgumentError)
+ end
+ it 'lets you put anything into non-forced fields' do
+ expect { DummySubject.new(normal: 'abc1123') }.to_not raise_error
+ end
end
end
end