Sha256: 91c8babb8b7edad9818d8a85fd404537bed644e4a798e82faeadff9973ff793d

Contents?: true

Size: 767 Bytes

Versions: 1

Compression:

Stored size: 767 Bytes

Contents

# typed: strict

require_relative "../../share/cleans_backtrace"
require_relative "../../share/bind"

module Mocktail
  class DescribesUnsatisfiedStubbing
    extend T::Sig

    sig { void }
    def initialize
      @cleans_backtrace = T.let(CleansBacktrace.new, Mocktail::CleansBacktrace)
    end

    sig { params(dry_call: Mocktail::Call).returns(Mocktail::UnsatisfyingCall) }
    def describe(dry_call)
      UnsatisfyingCall.new(
        call: dry_call,
        other_stubbings: Mocktail.cabinet.stubbings.select { |stubbing|
          Bind.call(dry_call.double, :==, stubbing.recording.double) &&
            dry_call.method == stubbing.recording.method
        },
        backtrace: @cleans_backtrace.clean(Error.new).backtrace || []
      )
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mocktail-2.0.0 lib/mocktail/sorbet/mocktail/handles_dry_call/fulfills_stubbing/describes_unsatisfied_stubbing.rb