Module: Pact::Provider::RSpec::ClassMethods

Includes:
RSpec::Core::DSL
Included in:
PactSpecRunner
Defined in:
lib/pact/provider/rspec.rb

Constant Summary collapse

EMPTY_ARRAY =
[].freeze

Instance Method Summary collapse

Instance Method Details

#honour_consumer_contract(consumer_contract, options = {}) ⇒ Object



44
45
46
# File 'lib/pact/provider/rspec.rb', line 44

def honour_consumer_contract consumer_contract, options = {}
  describe_consumer_contract consumer_contract, options.merge(consumer: consumer_contract.consumer.name, pact_context: InteractionContext.new)
end

#honour_pactfile(pact_source, pact_json, options) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/pact/provider/rspec.rb', line 24

def honour_pactfile pact_source, pact_json, options
  pact_uri = pact_source.uri
  Pact.configuration.output_stream.puts "INFO: Reading pact at #{pact_uri}"
  consumer_contract = Pact::ConsumerContract.from_json(pact_json)

  suffix = pact_uri.[:pending] ? " [PENDING]": ""
  example_group_description = "Verifying a pact between #{consumer_contract.consumer.name} and #{consumer_contract.provider.name}#{suffix}"
   = { pactfile_uri: pact_uri, pact_criteria: options[:criteria] }

  ::RSpec.describe example_group_description,  do
    honour_consumer_contract consumer_contract, options.merge(
      pact_json: pact_json,
      pact_uri: pact_uri,
      pact_source: pact_source,
      consumer_contract: consumer_contract,
      criteria: options[:criteria]
    )
  end
end