Skip to content

Commit 4ae0b58

Browse files
committed
feat(verify): add request customizer for pact-provider-verifier
1 parent fe2ebb1 commit 4ae0b58

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

lib/pact/cli/run_pact_verification.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ def pact_spec_options
7272
criteria: SpecCriteria.call(options),
7373
format: options[:format],
7474
out: options[:out],
75-
ignore_failures: options[:ignore_failures]
75+
ignore_failures: options[:ignore_failures],
76+
request_customizer: options[:request_customizer]
7677
}
7778
end
7879
end

lib/pact/provider/pact_spec_runner.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,8 @@ def initialize_specs
120120
pact_sources.each do | pact_source |
121121
options = {
122122
criteria: @options[:criteria],
123-
ignore_failures: @options[:ignore_failures]
123+
ignore_failures: @options[:ignore_failures],
124+
request_customizer: @options[:request_customizer]
124125
}
125126
honour_pactfile pact_source.uri, ordered_pact_json(pact_source.pact_json), options
126127
end

lib/pact/provider/rspec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def describe_interaction interaction, options
8585
interaction_context.run_once :before do
8686
Pact.configuration.logger.info "Running example '#{Pact::RSpec.full_description(example)}'"
8787
set_up_provider_state interaction.provider_state, options[:consumer]
88-
replay_interaction interaction
88+
replay_interaction interaction, options[:request_customizer]
8989
interaction_context.last_response = last_response
9090
end
9191
end

lib/pact/provider/test_methods.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,9 @@ module TestMethods
1414
include Pact::Logging
1515
include Rack::Test::Methods
1616

17-
def replay_interaction interaction
17+
def replay_interaction interaction, request_customizer = nil
1818
request = Request::Replayable.new(interaction.request)
19+
request = request_customizer.call(request, interaction) if request_customizer
1920
args = [request.path, request.body, request.headers]
2021

2122
logger.info "Sending #{request.method.upcase} request to path: \"#{request.path}\" with headers: #{request.headers}, see debug logs for body"

0 commit comments

Comments
 (0)