spec/mongoid/two_spec.rb in money-rails-1.6.2 vs spec/mongoid/two_spec.rb in money-rails-1.7.0
- old
+ new
@@ -2,16 +2,21 @@
if defined?(Mongoid) && ::Mongoid::VERSION =~ /^2(.*)/
describe Money do
let(:priceable) { Priceable.create(:price => Money.new(100, 'EUR')) }
+ let(:priceable_from_nil) { Priceable.create(:price => nil) }
let(:priceable_from_num) { Priceable.create(:price => 1) }
let(:priceable_from_string) { Priceable.create(:price => '1 EUR' )}
let(:priceable_with_infinite_precision) { Priceable.create(:price => Money.new(BigDecimal.new('100.1'), 'EUR')) }
let(:priceable_from_string_with_hyphen) { Priceable.create(:price => '1-2 EUR' )}
context "serialize" do
+ it "mongoizes correctly nil to nil" do
+ expect(priceable_from_nil.price).to be_nil
+ end
+
it "serializes correctly a Money object to a hash of cents and currency" do
expect(priceable.price.cents).to eq(100)
expect(priceable.price.currency).to eq(Money::Currency.find('EUR'))
end
@@ -58,14 +63,15 @@
context "deserialize" do
subject { priceable.price }
it { is_expected.to be_an_instance_of(Money) }
it { is_expected.to eq(Money.new(100, 'EUR')) }
- it "returns 0 cents in default_currency if a nil value was stored" do
+
+ it "returns nil if a nil value was stored" do
nil_priceable = Priceable.create(price: nil)
- expect(nil_priceable.price.cents).to eq(0)
- expect(nil_priceable.price.currency).to eq(Money.default_currency)
+ expect(nil_priceable.price).to be_nil
end
+
it 'returns nil if an unknown value was stored' do
zero_priceable = Priceable.create(:price => [])
expect(zero_priceable.price).to be_nil
end
end