Sha256: 94ad1d99ad02b947e2f116d4e28548f21026b7a26bd7791133de850688d59bd5

Contents?: true

Size: 1015 Bytes

Versions: 24

Compression:

Stored size: 1015 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

  describe CanBeValid do
    subject { CanBeValid.new(true) }
    it { subject.should be_valid }
  end

  describe CanBeValid do
    subject { CanBeValid.new(false) }
    it { subject.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

24 entries across 24 versions & 4 rubygems

Version Path
cavalle-rspec-rails-1.2.2.0.1 spec/spec/rails/matchers/ar_be_valid_spec.rb
cavalle-rspec-rails-1.2.2.0.2 spec/spec/rails/matchers/ar_be_valid_spec.rb
cavalle-rspec-rails-1.2.3.1 spec/spec/rails/matchers/ar_be_valid_spec.rb
cavalle-rspec-rails-1.2.4.0.1 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.99.1 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.99.13 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.99.2 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.99.3 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.99.4 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.99.5 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.99.6 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.99.7 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.99.8 spec/spec/rails/matchers/ar_be_valid_spec.rb
dchelimsky-rspec-rails-1.1.99.9 spec/spec/rails/matchers/ar_be_valid_spec.rb
mcmire-rspec-rails-1.1.99.9 spec/spec/rails/matchers/ar_be_valid_spec.rb
rspec-rails-1.2.7 spec/spec/rails/matchers/ar_be_valid_spec.rb
rspec-rails-1.2.7.1 spec/spec/rails/matchers/ar_be_valid_spec.rb
rspec-rails-1.2.0 spec/spec/rails/matchers/ar_be_valid_spec.rb
rspec-rails-1.2.4 spec/spec/rails/matchers/ar_be_valid_spec.rb
rspec-rails-1.2.3 spec/spec/rails/matchers/ar_be_valid_spec.rb