Sha256: 473d47b3673762baaaa024c30a7d10bd4665cdb932fb6600b4c4c1fce0e3c55e
Contents?: true
Size: 883 Bytes
Versions: 15
Compression:
Stored size: 883 Bytes
Contents
require 'spec_helper' describe Virtus, '#freeze' do subject { object.freeze } let(:model) { Class.new { include Virtus attribute :name, String, :default => 'foo', :lazy => true attribute :age, Integer, :default => 30 attribute :rand, Float, :default => Proc.new { rand } } } let(:object) { model.new } it { is_expected.to be_frozen } describe '#name' do subject { super().name } it { is_expected.to eql('foo') } end describe '#age' do subject { super().age } it { is_expected.to be(30) } end it "does not change dynamic default values" do original_value = object.rand object.freeze expect(object.rand).to eq original_value end it "does not change default attributes that have been explicitly set" do object.rand = 3.14 object.freeze expect(object.rand).to eq 3.14 end end
Version data entries
15 entries across 13 versions & 5 rubygems