Sha256: 61a20e5373b6337c51a5972b37db107cee421c030e2b3a7b1e5304ac044cee0c

Contents?: true

Size: 802 Bytes

Versions: 11

Compression:

Stored size: 802 Bytes

Contents

require File.dirname(__FILE__) + '/../../../spec_helper'

describe "be_valid" do
  class CanBeValid
    def initialize(valid)
      @valid = valid
    end
    def valid?; @valid end
  end

  it "should behave like normal be_valid matcher" do
    CanBeValid.new(true).should be_valid
    CanBeValid.new(false).should_not be_valid
  end

  class CanHaveErrors
    def initialize(errors)
      @valid = !errors
      @errors = ActiveRecord::Errors.new self
      @errors.add :name, "is too short"
    end
    attr_reader :errors
    def valid?; @valid end

    def self.human_attribute_name(ignore)
      "Name"
    end
  end

  it "should show errors in the output if they're available" do
    lambda { 
      CanHaveErrors.new(true).should be_valid
    }.should fail_with(/Name is too short/)
  end
end

Version data entries

11 entries across 11 versions & 3 rubygems

Version Path
dchelimsky-rspec-rails-1.1.11.4 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.11.5 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.11.6 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.11.7 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.12 spec/spec/rails/matchers/ar_be_valid_spec.rb
rspec-rails-1.1.12 spec/spec/rails/matchers/ar_be_valid_spec.rb
spree-0.6.0 vendor/plugins/rspec-rails/spec/spec/rails/matchers/ar_be_valid_spec.rb
spree-0.7.0 vendor/plugins/rspec-rails/spec/spec/rails/matchers/ar_be_valid_spec.rb
spree-0.7.1 vendor/plugins/rspec-rails/spec/spec/rails/matchers/ar_be_valid_spec.rb
spree-0.8.0 vendor/plugins/rspec-rails/spec/spec/rails/matchers/ar_be_valid_spec.rb
spree-0.8.1 vendor/plugins/rspec-rails/spec/spec/rails/matchers/ar_be_valid_spec.rb