Sha256: 9d04298723507121d08bffa8c632a463bdd1dd000998a271edb35be7261d06fa
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 KB
Contents
require 'spec_helper' describe ObjectAttorney do context "When the defendant is a single object" do before do @user = User.new @user_validator = Struct.new(:user) do include ObjectAttorney defend :user validates_presence_of :first_name, unless: Proc.new { |user| user.dont_validate } end end it "@user.errors should mention first_name" do expect(@user_validator.new(@user).invalid?).to be true expect(@user.errors.messages).to eq({ first_name: ["can't be blank"] }) end context "and the unless validation is true" do before do @user = User.new('', '', true) end it "@user.errors should be empty" do expect(@user_validator.new(@user).valid?).to be true expect(@user.errors.empty?).to be true end end end context "When the defendant is an array nested inside another object" do before do @user = User.new @user.posts = [Post.new, Post.new(nil, true), Post.new('yada')] @user_validator = Struct.new(:user) do include ObjectAttorney defend :posts, in: :user validates_presence_of :title end @user_validator.new(@user).invalid? end it "@user.errors should mention that :posts are invalid" do expect(@user.errors.messages).to eq({ posts: ["is invalid"] }) end it "only the first @user.posts should have errors" do expect(@user.posts[0].errors.messages).to eq({ title: ["can't be blank"] }) expect(@user.posts[1].errors.empty?).to be true expect(@user.posts[2].errors.empty?).to be true end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
object_attorney-3.0.0 | spec/object_attorney/object_attorney_spec.rb |