Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,8 @@ __pycache__/
include/

## Distribution files
/dist
/dist

# Logs and temporary files
/tmp
log
18 changes: 9 additions & 9 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 2 additions & 8 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,23 +26,17 @@ clap = { version = "4.5.2", features = ["derive", "env", "cargo"] }
clap_complete = { version = "4.5.1", features = [] }
home = "0.5.5"

# tracing = "0.1.40"
# tracing-appender = "0.2.3"
# tracing-core = "0.1.32"
# tracing-log = "0.2.0"
# tracing-subscriber = "0.3.16"

# pact-stub-server = { version = "*", path = "/Users/saf/dev/pact-foundation/pact-stub-server"}
# pact_mock_server_cli = { version = "2.0.0-beta.1", path = "/Users/saf/dev/pact-foundation/pact-core-mock-server/pact_mock_server_cli"}
# pact-plugin-cli = { version = "*", path = "/Users/saf/dev/pact-foundation/pact-plugins/cli"}
# pact_verifier_cli = { version = "*", path = "/Users/saf/dev/pact-foundation/pact-reference/rust/pact_verifier_cli"}
# pact-broker-cli = { version = "*", path = "/Users/saf/dev/pact-foundation/pact-broker-cli"}
# pact-broker-cli = { version = "*", git = "https://github.com/pact-foundation/pact-broker-cli", branch = "main"}
pact-stub-server = { version = "*", git = "https://github.com/YOU54F/pact-stub-server.git", branch = "feat/cli_as_lib"}
pact_mock_server_cli = { version = "2.0.0-beta.1", git = "https://github.com/YOU54F/pact-core-mock-server.git", branch = "feat/cli_as_lib"}
pact_mock_server_cli = { version = "2.0.0-beta.1", git = "https://github.com/YOU54F/pact-core-mock-server.git", branch = "feat/add-pact-specification-option-to-cli"}
pact-plugin-cli = { version = "*", git = "https://github.com/pact-foundation/pact-plugins", branch = "feat/cli_as_lib"}
pact_verifier_cli = { version = "*", git = "https://github.com/YOU54F/pact-reference", branch = "feat/cli_as_lib"}
pact-broker-cli = { version = "0.2.0" }
pact-broker-cli = { version = "0.2.1" }

[dev-dependencies]
trycmd = "0.15.0"
Expand Down
5 changes: 5 additions & 0 deletions examples/Gemfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
source 'https://rubygems.org'

gem 'sinatra', '>= 4.1.0'
gem 'sinatra-contrib', '>= 4.1.0'
gem 'pact-provider-verifier', '>= 1.39.1'
136 changes: 136 additions & 0 deletions examples/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
GEM
remote: https://rubygems.org/
specs:
awesome_print (1.9.2)
base64 (0.3.0)
diff-lcs (1.6.2)
expgen (0.1.1)
parslet
faraday (2.14.0)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-net_http (3.4.1)
net-http (>= 0.5.0)
faraday-retry (2.3.2)
faraday (~> 2.0)
find_a_port (1.0.1)
json (2.15.1)
jsonpath (1.1.5)
multi_json
logger (1.7.0)
multi_json (1.17.0)
mustermann (3.0.4)
ruby2_keywords (~> 0.0.1)
net-http (0.6.0)
uri
ostruct (0.6.3)
pact (1.66.2)
jsonpath (~> 1.0)
pact-mock_service (~> 3.0, >= 3.3.1)
pact-support (~> 1.21, >= 1.21.0)
rack-test (>= 0.6.3, < 3.0.0)
rainbow (~> 3.1)
rspec (~> 3.0)
string_pattern (~> 2.0)
thor (>= 0.20, < 2.0)
pact-message (0.11.1)
pact-mock_service (~> 3.1)
pact-support (~> 1.8)
thor (>= 0.20, < 2.0)
pact-mock_service (3.12.3)
find_a_port (~> 1.0.1)
json
pact-support (~> 1.16, >= 1.16.4)
rack (>= 3.0, < 4.0)
rackup (~> 2.0)
rspec (>= 2.14)
thor (>= 0.19, < 2.0)
webrick (~> 1.8)
pact-provider-verifier (1.39.1)
faraday (~> 2.5)
faraday-retry (~> 2.2)
json (> 1.8)
ostruct
pact (~> 1.59)
pact-message (~> 0.5)
rack (>= 3.0, < 4.0)
rack-reverse-proxy-pact
rackup (~> 2.0)
rspec (~> 3.5)
rspec_junit_formatter (~> 0.3)
pact-support (1.21.2)
awesome_print (~> 1.9)
diff-lcs (~> 1.5)
expgen (~> 0.1)
jsonpath (~> 1.0)
rainbow (~> 3.1.1)
string_pattern (~> 2.0)
parslet (2.0.0)
rack (3.2.3)
rack-protection (4.2.1)
base64 (>= 0.1.0)
logger (>= 1.6.0)
rack (>= 3.0.0, < 4)
rack-proxy (0.7.7)
rack
rack-reverse-proxy-pact (1.0.2)
rack (>= 3.0, < 4.0)
rack-proxy (~> 0.6, >= 0.6.1)
rackup (~> 2.0)
rack-session (2.1.1)
base64 (>= 0.1.0)
rack (>= 3.0.0)
rack-test (2.2.0)
rack (>= 1.3)
rackup (2.2.1)
rack (>= 3)
rainbow (3.1.1)
regexp_parser (2.11.3)
rspec (3.13.1)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.5)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.6)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.6)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
ruby2_keywords (0.0.5)
sinatra (4.2.1)
logger (>= 1.6.0)
mustermann (~> 3.0)
rack (>= 3.0.0, < 4)
rack-protection (= 4.2.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
sinatra-contrib (4.2.1)
multi_json (>= 0.0.2)
mustermann (~> 3.0)
rack-protection (= 4.2.1)
sinatra (= 4.2.1)
tilt (~> 2.0)
string_pattern (2.3.0)
regexp_parser (~> 2.5, >= 2.5.0)
thor (1.4.0)
tilt (2.6.1)
uri (1.0.4)
webrick (1.9.1)

PLATFORMS
arm64-darwin-24
ruby

DEPENDENCIES
pact-provider-verifier (>= 1.39.1)
sinatra (>= 4.1.0)
sinatra-contrib (>= 4.1.0)

BUNDLED WITH
2.7.0
46 changes: 46 additions & 0 deletions examples/another-they.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"consumer": {
"name": "anotherclient"
},
"provider": {
"name": "they"
},
"interactions": [
{
"description": "Greeting",
"request": {
"method": "GET",
"path": "/"
},
"response": {
"status": 200,
"headers": {
},
"body": {
"greeting": "Hello"
}
}
},
{
"description": "Provider state success",
"providerState": "There is a greeting",
"request": {
"method": "GET",
"path": "/somestate"
},
"response": {
"status": 200,
"headers": {
},
"body": {
"greeting": "State data!"
}
}
}
],
"metadata": {
"pactSpecification": {
"version": "2.0.0"
}
}
}
33 changes: 33 additions & 0 deletions examples/api.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
require 'sinatra'
require 'sinatra/base'
require 'sinatra/json'
require 'json'

state_data = ""

get '/' do
json :greeting => 'Hello'
end

get '/fail' do
json :greeting => 'Oh noes!'
end

get '/provider-states' do
content_type :json
{
:me => ["There is a greeting"],
:anotherclient => ["There is a greeting"]
}.to_json
end

post '/provider-state' do
logger.info "Provider state request: #{params}"
state_data = "State data!"
json :greeting => "State set"
status 201
end

get '/somestate' do
json :greeting => state_data
end
16 changes: 16 additions & 0 deletions examples/consumer-interaction.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"description": "foo",
"request": {
"path": "/foo",
"method": "GET"
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"body": {
"message": "Hello world"
}
}
}
61 changes: 61 additions & 0 deletions examples/fail.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{
"consumer": {
"name": "me"
},
"provider": {
"name": "they"
},
"interactions": [
{
"description": "Greeting",
"request": {
"method": "GET",
"path": "/"
},
"response": {
"status": 200,
"headers": {
},
"body": {
"greeting": "Hello"
}
}
},
{
"description": "Greeting fail",
"request": {
"method": "GET",
"path": "/fail"
},
"response": {
"status": 201,
"headers": {
},
"body": {
"greeting": "Oh yes!"
}
}
},
{
"description": "Provider state success",
"providerStates": "There is a greeting",
"request": {
"method": "GET",
"path": "/somestate"
},
"response": {
"status": 200,
"headers": {
},
"body": {
"greeting": "State data!"
}
}
}
],
"metadata": {
"pactSpecification": {
"version": "2.0.0"
}
}
}
Loading