Sha256: 83f1e75b4b11deaac55eac520ff52ee29ead0efeed2274b7ef0176bb518bdaa6

Contents?: true

Size: 1.24 KB

Versions: 14

Compression:

Stored size: 1.24 KB

Contents

module RSpec
  module Rails
    module Matchers
      # @private
      class BeValid < RSpec::Matchers::BuiltIn::Be
        def initialize(*args)
          @args = args
        end

        def matches?(actual)
          @actual = actual
          actual.valid?(*@args)
        end

        def failure_message
          message = "expected #{actual.inspect} to be valid"

          if actual.respond_to?(:errors)
            errors = if actual.errors.respond_to?(:full_messages)
                       actual.errors.full_messages
                     else
                       actual.errors
                     end

            message << ", but got errors: #{errors.map(&:to_s).join(', ')}"
          end

          message
        end

        def failure_message_when_negated
          "expected #{actual.inspect} not to be valid"
        end
      end

      # Passes if the given model instance's `valid?` method is true, meaning
      # all of the `ActiveModel::Validations` passed and no errors exist. If a
      # message is not given, a default message is shown listing each error.
      #
      # @example
      #     thing = Thing.new
      #     expect(thing).to be_valid
      def be_valid(*args)
        BeValid.new(*args)
      end
    end
  end
end

Version data entries

14 entries across 13 versions & 3 rubygems

Version Path
sc_core-0.0.7 test/dummy/vendor/bundle/ruby/2.2.0/gems/rspec-rails-3.3.3/lib/rspec/rails/matchers/be_valid.rb
solidus_backend-1.0.0.pre3 vendor/bundle/gems/rspec-rails-3.3.2/lib/rspec/rails/matchers/be_valid.rb
solidus_backend-1.0.0.pre2 vendor/bundle/gems/rspec-rails-3.3.2/lib/rspec/rails/matchers/be_valid.rb
rspec-rails-3.3.3 lib/rspec/rails/matchers/be_valid.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/rspec-rails-3.3.2/lib/rspec/rails/matchers/be_valid.rb
solidus_backend-1.0.0.pre vendor/bundle/gems/rspec-rails-3.1.0/lib/rspec/rails/matchers/be_valid.rb
rspec-rails-3.3.2 lib/rspec/rails/matchers/be_valid.rb
rspec-rails-3.3.1 lib/rspec/rails/matchers/be_valid.rb
rspec-rails-3.3.0 lib/rspec/rails/matchers/be_valid.rb
rspec-rails-3.2.3 lib/rspec/rails/matchers/be_valid.rb
rspec-rails-3.2.2 lib/rspec/rails/matchers/be_valid.rb
rspec-rails-3.2.1 lib/rspec/rails/matchers/be_valid.rb
rspec-rails-3.2.0 lib/rspec/rails/matchers/be_valid.rb
rspec-rails-3.1.0 lib/rspec/rails/matchers/be_valid.rb