spec/mongoid_spec.rb in machinist-mongoid-0.0.1 vs spec/mongoid_spec.rb in machinist-mongoid-0.1.0

- old
+ new

@@ -3,49 +3,49 @@ MachinistTestHelper.configure! class Address include Mongoid::Document - + field :street field :zip field :country embedded_in :person, :inverse_of => :address end class Person include Mongoid::Document - + field :name field :password field :admin, :type => Boolean, :default => false embeds_one :address end class Post include Mongoid::Document - + field :title field :body field :published, :type => Boolean, :default => true - + has_many :comments end class Comment include Mongoid::Document - + field :body field :post_id field :author_id - + belongs_to :post belongs_to :author, :class_name => "Person" end -describe Machinist, "Mongoid::Document adapter" do +describe Machinist, "Mongoid::Document adapter" do before(:each) do Person.clear_blueprints! Post.clear_blueprints! Comment.clear_blueprints! @@ -55,64 +55,67 @@ it "should save the constructed object" do Person.blueprint { } person = Person.make! person.should_not be_new_record end - + it "should create an object through embedded_in association" do Post.blueprint { } Comment.blueprint { post } Comment.make.post.should be_instance_of(Post) end - + it "should create an object through embedded_in association with a class_name attribute" do Person.blueprint { } Comment.blueprint { author } Comment.make.author.should be_instance_of(Person) end - + it "should create an object through embedded_in association using a named blueprint" do Post.blueprint { } Post.blueprint(:dummy) do title { 'Dummy Post' } end Comment.blueprint { post(:dummy) } Comment.make.post.title.should == 'Dummy Post' end end - + describe "plan method" do - context "attribute assignment" do + context "attribute assignment" do it "should allow assigning a value to an attribute" do Post.blueprint { title {"1234"} } post = Post.make! post.title.should == "1234" end - it "should allow arbitrary attributes on the base model in its blueprint" do - Post.blueprint { foo {"bar"} } - post = Post.make! - post.foo.should == "bar" + # see: https://github.com/mongoid/mongoid/issues/3035#issuecomment-17858040 + unless ::Mongoid::VERSION =~ /^4\./ + it "should allow arbitrary attributes on the base model in its blueprint" do + Post.blueprint { foo {"bar"} } + post = Post.make! + post.foo.should == "bar" + end end end end - + describe "make_unsaved method" do it "should not save the constructed object" do Person.blueprint { } person = Person.make person.should be_new_record end - + it "should not save associated objects" do Post.blueprint { } Comment.blueprint { post } comment = Comment.make comment.post.should be_new_record end end - + describe "make method with embedded documents" do it "should construct object" do Address.blueprint { } address = Address.make address.should be_instance_of(Address) @@ -124,13 +127,16 @@ address { Address.make } end Person.make.address.should be_instance_of(Address) end - it "should allow arbitrary attributes on the base model in its blueprint" do - Address.blueprint { foo {"bar"} } - addr = Address.make - addr.foo.should == "bar" + # see: https://github.com/mongoid/mongoid/issues/3035#issuecomment-17858040 + unless ::Mongoid::VERSION =~ /^4\./ + it "should allow arbitrary attributes on the base model in its blueprint" do + Address.blueprint { foo {"bar"} } + addr = Address.make + addr.foo.should == "bar" + end end end - + end