Sha256: 87d3ef500db29b87f3dacacae5fd85a65f57b72257ed01ceeb7f8fa7ffd42854
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
# typed: strict require_relative "records_demonstration" require_relative "verifies_call/finds_verifiable_calls" require_relative "verifies_call/raises_verification_error" module Mocktail class VerifiesCall extend T::Sig sig { void } def initialize @records_demonstration = T.let(RecordsDemonstration.new, RecordsDemonstration) @finds_verifiable_calls = T.let(FindsVerifiableCalls.new, FindsVerifiableCalls) @raises_verification_error = T.let(RaisesVerificationError.new, RaisesVerificationError) end sig { params(demo: T.proc.params(matchers: Mocktail::MatcherPresentation).void, demo_config: DemoConfig).void } def verify(demo, demo_config) recording = @records_demonstration.record(demo, demo_config) verifiable_calls = @finds_verifiable_calls.find(recording, demo_config) unless verification_satisfied?(verifiable_calls.size, demo_config) @raises_verification_error.raise(recording, verifiable_calls, demo_config) end nil end private sig { params(verifiable_call_count: Integer, demo_config: DemoConfig).returns(T::Boolean) } def verification_satisfied?(verifiable_call_count, demo_config) (demo_config.times.nil? && verifiable_call_count > 0) || (demo_config.times == verifiable_call_count) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mocktail-2.0.0 | lib/mocktail/sorbet/mocktail/verifies_call.rb |