Sha256: 13356fd162ec4a3f309db3f708eaf9488c0f9a92090f0a493dabc285d5a6d195

Contents?: true

Size: 837 Bytes

Versions: 2

Compression:

Stored size: 837 Bytes

Contents

# encoding: utf-8
require "rspec"

module Attestor

  # Helpers for validations
  module RSpec
    include ::RSpec::Mocks::ExampleMethods

    # Mocks a valid object
    #
    # @return [RSpec::Mocks::Double]
    def valid_spy
      object = spy
      allow(object).to receive(:validate!)
      allow(object).to receive(:validate) { Report.new(object) }

      object
    end

    # Mocks an invalid object with given error messages
    #
    # @param [String, Array<String>] messages
    #
    # @return [RSpec::Mocks::Double]
    def invalid_spy(messages = "invalid")
      object = spy
      error  = InvalidError.new(object, messages)
      allow(object).to receive(:validate!) { fail error }
      allow(object).to receive(:validate)  { Report.new(object, error) }

      object
    end

  end # module RSpec

end # module Attestor

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
attestor-2.2.1 lib/attestor/rspec.rb
attestor-2.2.0 lib/attestor/rspec.rb