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