pact 1.64.0 → 1.67.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +130 -0
- data/lib/pact/cli/run_pact_verification.rb +0 -1
- data/lib/pact/consumer/consumer_contract_builder.rb +1 -1
- data/lib/pact/hal/http_client.rb +19 -1
- data/lib/pact/pact_broker/fetch_pact_uris_for_verification.rb +19 -8
- data/lib/pact/provider/configuration/message_provider_dsl.rb +4 -0
- data/lib/pact/provider/configuration/pact_verification_from_broker.rb +8 -2
- data/lib/pact/provider/help/console_text.rb +4 -8
- data/lib/pact/provider/help/prompt_text.rb +2 -4
- data/lib/pact/provider/matchers/messages.rb +3 -5
- data/lib/pact/provider/print_missing_provider_states.rb +3 -5
- data/lib/pact/provider/request.rb +25 -5
- data/lib/pact/provider/rspec/formatter_rspec_2.rb +1 -3
- data/lib/pact/provider/rspec/formatter_rspec_3.rb +1 -3
- data/lib/pact/provider/rspec/pact_broker_formatter.rb +2 -2
- data/lib/pact/provider/rspec.rb +5 -3
- data/lib/pact/provider/test_methods.rb +9 -3
- data/lib/pact/v2/configuration.rb +23 -0
- data/lib/pact/v2/consumer/grpc_interaction_builder.rb +194 -0
- data/lib/pact/v2/consumer/http_interaction_builder.rb +162 -0
- data/lib/pact/v2/consumer/interaction_contents.rb +62 -0
- data/lib/pact/v2/consumer/message_interaction_builder.rb +288 -0
- data/lib/pact/v2/consumer/mock_server.rb +108 -0
- data/lib/pact/v2/consumer/pact_config/base.rb +24 -0
- data/lib/pact/v2/consumer/pact_config/grpc.rb +26 -0
- data/lib/pact/v2/consumer/pact_config/http.rb +55 -0
- data/lib/pact/v2/consumer/pact_config/message.rb +17 -0
- data/lib/pact/v2/consumer/pact_config/plugin_async_message.rb +26 -0
- data/lib/pact/v2/consumer/pact_config/plugin_http.rb +26 -0
- data/lib/pact/v2/consumer/pact_config/plugin_sync_message.rb +26 -0
- data/lib/pact/v2/consumer/pact_config.rb +30 -0
- data/lib/pact/v2/consumer/plugin_async_message_interaction_builder.rb +171 -0
- data/lib/pact/v2/consumer/plugin_http_interaction_builder.rb +201 -0
- data/lib/pact/v2/consumer/plugin_sync_message_interaction_builder.rb +180 -0
- data/lib/pact/v2/consumer.rb +8 -0
- data/lib/pact/v2/generators/base.rb +287 -0
- data/lib/pact/v2/generators.rb +49 -0
- data/lib/pact/v2/matchers/base.rb +74 -0
- data/lib/pact/v2/matchers/v1/equality.rb +19 -0
- data/lib/pact/v2/matchers/v2/regex.rb +19 -0
- data/lib/pact/v2/matchers/v2/type.rb +17 -0
- data/lib/pact/v2/matchers/v3/boolean.rb +17 -0
- data/lib/pact/v2/matchers/v3/content_type.rb +32 -0
- data/lib/pact/v2/matchers/v3/date.rb +18 -0
- data/lib/pact/v2/matchers/v3/date_time.rb +18 -0
- data/lib/pact/v2/matchers/v3/decimal.rb +17 -0
- data/lib/pact/v2/matchers/v3/each.rb +42 -0
- data/lib/pact/v2/matchers/v3/include.rb +17 -0
- data/lib/pact/v2/matchers/v3/integer.rb +17 -0
- data/lib/pact/v2/matchers/v3/null.rb +16 -0
- data/lib/pact/v2/matchers/v3/number.rb +17 -0
- data/lib/pact/v2/matchers/v3/semver.rb +23 -0
- data/lib/pact/v2/matchers/v3/time.rb +18 -0
- data/lib/pact/v2/matchers/v3/values.rb +16 -0
- data/lib/pact/v2/matchers/v4/each_key.rb +26 -0
- data/lib/pact/v2/matchers/v4/each_key_value.rb +32 -0
- data/lib/pact/v2/matchers/v4/each_value.rb +33 -0
- data/lib/pact/v2/matchers/v4/not_empty.rb +24 -0
- data/lib/pact/v2/matchers/v4/status_code.rb +17 -0
- data/lib/pact/v2/matchers.rb +110 -0
- data/lib/pact/v2/native/blocking_verifier.rb +17 -0
- data/lib/pact/v2/native/logger.rb +25 -0
- data/lib/pact/v2/provider/async_message_verifier.rb +28 -0
- data/lib/pact/v2/provider/base_verifier.rb +242 -0
- data/lib/pact/v2/provider/grpc_verifier.rb +38 -0
- data/lib/pact/v2/provider/gruf_server.rb +75 -0
- data/lib/pact/v2/provider/http_server.rb +79 -0
- data/lib/pact/v2/provider/http_verifier.rb +43 -0
- data/lib/pact/v2/provider/message_provider_servlet.rb +79 -0
- data/lib/pact/v2/provider/mixed_verifier.rb +22 -0
- data/lib/pact/v2/provider/pact_broker_proxy.rb +66 -0
- data/lib/pact/v2/provider/pact_broker_proxy_runner.rb +80 -0
- data/lib/pact/v2/provider/pact_config/async.rb +29 -0
- data/lib/pact/v2/provider/pact_config/base.rb +103 -0
- data/lib/pact/v2/provider/pact_config/grpc.rb +26 -0
- data/lib/pact/v2/provider/pact_config/http.rb +27 -0
- data/lib/pact/v2/provider/pact_config/mixed.rb +40 -0
- data/lib/pact/v2/provider/pact_config.rb +26 -0
- data/lib/pact/v2/provider/provider_server_runner.rb +92 -0
- data/lib/pact/v2/provider/provider_state_configuration.rb +32 -0
- data/lib/pact/v2/provider/provider_state_servlet.rb +86 -0
- data/lib/pact/v2/provider.rb +8 -0
- data/lib/pact/v2/railtie.rb +13 -0
- data/lib/pact/v2/rspec/support/pact_consumer_helpers.rb +93 -0
- data/lib/pact/v2/rspec/support/pact_message_helpers.rb +42 -0
- data/lib/pact/v2/rspec/support/pact_provider_helpers.rb +129 -0
- data/lib/pact/v2/rspec/support/waterdrop/pact_waterdrop_client.rb +27 -0
- data/lib/pact/v2/rspec/support/webmock/webmock_helpers.rb +30 -0
- data/lib/pact/v2/rspec.rb +17 -0
- data/lib/pact/v2/tasks/pact.rake +13 -0
- data/lib/pact/v2.rb +71 -0
- data/lib/pact/version.rb +1 -1
- data/lib/pact.rb +6 -0
- data/lib/tasks/pact.rake +2 -2
- data/pact.gemspec +57 -9
- metadata +420 -69
data/lib/pact/version.rb
CHANGED
data/lib/pact.rb
CHANGED
|
@@ -4,3 +4,9 @@ require 'pact/configuration'
|
|
|
4
4
|
require 'pact/consumer'
|
|
5
5
|
require 'pact/provider'
|
|
6
6
|
require 'pact/consumer_contract'
|
|
7
|
+
|
|
8
|
+
begin
|
|
9
|
+
require 'pact/v2'
|
|
10
|
+
rescue LoadError
|
|
11
|
+
# "Please ensure that the 'pact-ffi' gem is included in your Gemfile for pact/v2 support."
|
|
12
|
+
end
|
data/lib/tasks/pact.rake
CHANGED
|
@@ -15,12 +15,12 @@ namespace :pact do
|
|
|
15
15
|
|
|
16
16
|
desc "Verifies the pact at the given URI against this service provider."
|
|
17
17
|
task 'verify:at', :pact_uri do | t, args |
|
|
18
|
-
require '
|
|
18
|
+
require 'rainbow'
|
|
19
19
|
require 'pact/tasks/task_helper'
|
|
20
20
|
|
|
21
21
|
include Pact::TaskHelper
|
|
22
22
|
|
|
23
|
-
abort(
|
|
23
|
+
abort(Rainbow("Please provide a pact URI. eg. rake pact:verify:at[../my-consumer/spec/pacts/my_consumer-my_provider.json]").red) unless args[:pact_uri]
|
|
24
24
|
handle_verification_failure do
|
|
25
25
|
execute_pact_verify args[:pact_uri]
|
|
26
26
|
end
|
data/pact.gemspec
CHANGED
|
@@ -26,23 +26,71 @@ Gem::Specification.new do |gem|
|
|
|
26
26
|
'documentation_uri' => 'https://github.com/pact-foundation/pact-ruby/blob/master/README.md'
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
# Shared dev dependencies between v1 and v2
|
|
30
|
+
gem.add_development_dependency 'rake', '~> 13.0'
|
|
31
|
+
gem.add_development_dependency 'faraday', '~>2.0', '<3.0'
|
|
32
|
+
gem.add_development_dependency 'webmock', '~> 3.0'
|
|
33
|
+
|
|
34
|
+
# Shared runtime dependencies between v1 and v2
|
|
29
35
|
gem.add_runtime_dependency 'rspec', '~> 3.0'
|
|
36
|
+
|
|
37
|
+
# Pact v2 dependencies
|
|
38
|
+
|
|
39
|
+
# Core dependencies (code loading)
|
|
40
|
+
gem.add_dependency "zeitwerk", "~> 2.3"
|
|
41
|
+
# For Pact support via Pact Rust Core
|
|
42
|
+
# moved to optional group in Gemfile, to allow opt in for users who want Pact v2
|
|
43
|
+
# and to support pact-ruby-standalone which cannot package the ffi for all supported platforms
|
|
44
|
+
# gem.add_dependency "pact-ffi", "~> 0.4.28"
|
|
45
|
+
# For Provider Side Verification
|
|
46
|
+
gem.add_dependency "rack"
|
|
47
|
+
gem.add_dependency "rack-proxy"
|
|
48
|
+
gem.add_dependency "webrick", '~> 1.8'
|
|
49
|
+
# For Rails support, including testing non rails apps
|
|
50
|
+
gem.add_development_dependency "combustion", ">= 1.3"
|
|
51
|
+
# For Kafka support
|
|
52
|
+
unless RUBY_PLATFORM =~ /win32|x64-mingw32|x64-mingw-ucrt/
|
|
53
|
+
# windows does not support librdkafka
|
|
54
|
+
gem.add_development_dependency "sbmt-kafka_consumer", ">= 2.0.1"
|
|
55
|
+
gem.add_development_dependency "sbmt-kafka_producer", ">= 1.0"
|
|
56
|
+
end
|
|
57
|
+
if ENV['X_PACT_DEVELOPMENT_RDKAFKA'] == 'true'
|
|
58
|
+
# darwin-arm64 prebuilt gems available from 0.20.0
|
|
59
|
+
gem.add_development_dependency "karafka-rdkafka", ">= 0.20.0"
|
|
60
|
+
end
|
|
61
|
+
# For gRPC support
|
|
62
|
+
gem.add_development_dependency "gruf", ">= 2.18"
|
|
63
|
+
gem.add_development_dependency "gruf-rspec", ">= 0.6.0"
|
|
64
|
+
# Testing tools
|
|
65
|
+
gem.add_development_dependency "rspec"
|
|
66
|
+
gem.add_development_dependency "rspec-rails"
|
|
67
|
+
gem.add_development_dependency "rspec_junit_formatter"
|
|
68
|
+
gem.add_development_dependency "vcr", ">= 6.0"
|
|
69
|
+
# Development and linting tools
|
|
70
|
+
gem.add_development_dependency "appraisal", ">= 2.4"
|
|
71
|
+
gem.add_development_dependency "bundler", ">= 2.2"
|
|
72
|
+
gem.add_development_dependency "rubocop"
|
|
73
|
+
gem.add_development_dependency "rubocop-rspec"
|
|
74
|
+
gem.add_development_dependency "rubocop-rails"
|
|
75
|
+
gem.add_development_dependency "rubocop-performance"
|
|
76
|
+
gem.add_development_dependency "standard", ">= 1.35.1"
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
# Pact v1 dependencies
|
|
30
80
|
gem.add_runtime_dependency 'rack-test', '>= 0.6.3', '< 3.0.0'
|
|
31
81
|
gem.add_runtime_dependency 'thor', '>= 0.20', '< 2.0'
|
|
32
|
-
gem.add_runtime_dependency
|
|
33
|
-
gem.add_runtime_dependency 'term-ansicolor', '~> 1.7'
|
|
82
|
+
gem.add_runtime_dependency "rainbow", '~> 3.1'
|
|
34
83
|
|
|
35
|
-
gem.add_runtime_dependency
|
|
84
|
+
gem.add_runtime_dependency "pact-support" , "~> 1.21", ">=1.21.2"
|
|
36
85
|
gem.add_runtime_dependency 'pact-mock_service', '~> 3.0', '>= 3.3.1'
|
|
37
|
-
|
|
38
|
-
gem.add_development_dependency 'rake', '~> 13.0'
|
|
39
|
-
gem.add_development_dependency 'webmock', '~> 3.0'
|
|
40
|
-
gem.add_development_dependency 'fakefs', '2.4' # 0.6.0 blows up
|
|
86
|
+
gem.add_development_dependency 'fakefs', '2.4'
|
|
41
87
|
gem.add_development_dependency 'hashie', '~> 5.0'
|
|
42
|
-
gem.add_development_dependency 'faraday', '~>1.0', '<3.0'
|
|
43
88
|
gem.add_development_dependency 'faraday-multipart', '~> 1.0'
|
|
44
89
|
gem.add_development_dependency 'conventional-changelog', '~> 1.3'
|
|
45
90
|
gem.add_development_dependency 'bump', '~> 0.5'
|
|
46
91
|
gem.add_development_dependency 'pact-message', '~> 0.8'
|
|
47
92
|
gem.add_development_dependency 'rspec-its', '~> 1.3'
|
|
48
|
-
|
|
93
|
+
# gem.add_development_dependency 'webrick', '~> 1.8' # webrick is a runtime dependency of pact v2, so included above
|
|
94
|
+
gem.add_development_dependency 'ostruct'
|
|
95
|
+
|
|
96
|
+
end
|