pact_broker-client 1.14.1 → 1.15.0

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +21 -0
  4. data/README.md +27 -1
  5. data/Rakefile +9 -0
  6. data/doc/pacts/markdown/Pact Broker Client - Pact Broker.md +521 -10
  7. data/lib/pact_broker/client/base_client.rb +1 -1
  8. data/lib/pact_broker/client/cli/broker.rb +63 -0
  9. data/lib/pact_broker/client/cli/can_i_deploy_long_desc.txt +1 -1
  10. data/lib/pact_broker/client/cli/create_webhook_long_desc.txt +1 -0
  11. data/lib/pact_broker/client/command_result.rb +12 -0
  12. data/lib/pact_broker/client/hal.rb +4 -0
  13. data/lib/pact_broker/client/hal/entity.rb +78 -0
  14. data/lib/pact_broker/client/hal/entry_point.rb +13 -0
  15. data/lib/pact_broker/client/hal/http_client.rb +82 -0
  16. data/lib/pact_broker/client/hal/link.rb +79 -0
  17. data/lib/pact_broker/client/pacts.rb +7 -1
  18. data/lib/pact_broker/client/version.rb +1 -1
  19. data/lib/pact_broker/client/versions.rb +0 -1
  20. data/lib/pact_broker/client/webhooks/create.rb +114 -0
  21. data/spec/integration/can_i_deploy_spec.rb +1 -3
  22. data/spec/integration/create_version_tag_spec.rb +1 -3
  23. data/spec/lib/pact_broker/client/can_i_deploy_spec.rb +1 -1
  24. data/spec/lib/pact_broker/client/cli/broker_create_webhook_spec.rb +190 -0
  25. data/spec/lib/pact_broker/client/hal/entity_spec.rb +93 -0
  26. data/spec/lib/pact_broker/client/hal/http_client_spec.rb +105 -0
  27. data/spec/lib/pact_broker/client/hal/link_spec.rb +108 -0
  28. data/spec/lib/pact_broker/client/webhooks/create_spec.rb +61 -0
  29. data/spec/pacts/pact_broker_client-pact_broker.json +499 -9
  30. data/spec/service_providers/pact_broker_client_publish_spec.rb +6 -1
  31. data/spec/service_providers/pact_broker_client_retrieve_all_pacts_for_provider_spec.rb +1 -1
  32. data/spec/service_providers/{pact_broker_client_retrive_pact_spec.rb → pact_broker_client_retrieve_pact_spec.rb} +2 -3
  33. data/spec/service_providers/pact_broker_client_versions_spec.rb +1 -1
  34. data/spec/service_providers/pact_helper.rb +46 -0
  35. data/spec/service_providers/webhooks_create_spec.rb +255 -0
  36. data/spec/spec_helper.rb +32 -0
  37. data/spec/support/latest_pacts_for_provider.json +1 -1
  38. data/spec/support/shared_context.rb +6 -3
  39. metadata +24 -4
@@ -1,3 +1,6 @@
1
+ require 'pact_broker/client/pact_broker_client'
2
+ require_relative 'pact_helper'
3
+
1
4
  module PactBroker::Client
2
5
  describe PactBrokerClient, :pact => true do
3
6
 
@@ -116,7 +119,9 @@ module PactBroker::Client
116
119
  status: 500,
117
120
  headers: {'Content-Type' => Pact.term(generate: 'application/hal+json', matcher: %r{application/.*json})},
118
121
  body: {
119
- message: Pact::Term.new(matcher: /.*/, generate: 'An error occurred')
122
+ error: {
123
+ message: Pact::Term.new(matcher: /.*/, generate: 'An error occurred')
124
+ }
120
125
  }
121
126
  )
122
127
  end
@@ -7,7 +7,7 @@ module PactBroker::Client
7
7
  include_context "pact broker"
8
8
 
9
9
  describe "retriving all pacts for provider" do
10
- let(:response_body) { JSON.parse(File.read("./spec/support/latest_pacts_for_provider.json")) }
10
+ let(:response_body) { Pact.like(JSON.parse(File.read("./spec/support/latest_pacts_for_provider.json"))) }
11
11
  let(:expectedPactsArray) { [{:name => "Condor", :href => "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0"}] }
12
12
 
13
13
  context "when retrieving all the latest pacts for provider with prod tag specified" do
@@ -70,8 +70,7 @@ module PactBroker::Client
70
70
  headers: {}
71
71
  ).
72
72
  will_respond_with(
73
- status: 404,
74
- headers: pact_broker_response_headers
73
+ status: 404
75
74
  )
76
75
  end
77
76
  it "returns nil" do
@@ -89,7 +88,7 @@ module PactBroker::Client
89
88
  with(
90
89
  method: :get,
91
90
  path: '/pacts/provider/Pricing%20Service/consumer/Condor/latest/prod',
92
- headers: { 'Accept' => 'application/json, application/hal+json'}
91
+ headers: { 'Accept' => 'application/hal+json, application/json'}
93
92
  ).
94
93
  will_respond_with(
95
94
  status: 200,
@@ -6,7 +6,7 @@ describe PactBroker::Client::Versions, pact: true do
6
6
 
7
7
  include_context "pact broker"
8
8
 
9
- let(:get_headers) { { "Accept" => "application/json, application/hal+json" } }
9
+ let(:get_headers) { { "Accept" => "application/hal+json, application/json" } }
10
10
 
11
11
  describe "retrieving the latest pacticipant version" do
12
12
  let(:latest_version_path) { "/HAL-REL-PLACEHOLDER-INDEX-PB-LATEST-VERSION-{pacticipant}" }
@@ -18,3 +18,49 @@ Pact.service_consumer 'Pact Broker Client' do
18
18
 
19
19
  end
20
20
 
21
+ module PactBrokerPactHelperMethods
22
+
23
+ def placeholder_path(relation, params = [])
24
+ path = "/HAL-REL-PLACEHOLDER-#{relation.gsub(':', '-').upcase}"
25
+ if params.any?
26
+ joined_params = params.collect{ |param| "{#{param}}"}.join("-")
27
+ path = "#{path}-#{joined_params}"
28
+ end
29
+
30
+ path
31
+ end
32
+
33
+ def placeholder_url(relation, params = [])
34
+ "#{pact_broker.mock_service_base_url}#{placeholder_path(relation, params)}"
35
+ end
36
+
37
+ def placeholder_url_term(relation, params = [])
38
+ regexp = "http:\/\/.*"
39
+ if params.any?
40
+ joined_params_for_regexp = params.collect{ |param| "{#{param}}"}.join(".*")
41
+ regexp = "#{regexp}#{joined_params_for_regexp}"
42
+ end
43
+
44
+ Pact.term(placeholder_url(relation, params), /#{regexp}/)
45
+ end
46
+
47
+ def mock_pact_broker_index(context)
48
+ pact_broker
49
+ .upon_receiving("a request for the index resource")
50
+ .with(
51
+ method: :get,
52
+ path: '/',
53
+ headers: context.get_request_headers).
54
+ will_respond_with(
55
+ status: 200,
56
+ headers: context.pact_broker_response_headers,
57
+ body: {
58
+ _links: {
59
+ :'pb:webhooks' => {
60
+ href: placeholder_url_term('pb:webhooks')
61
+ }
62
+ }
63
+ }
64
+ )
65
+ end
66
+ end
@@ -0,0 +1,255 @@
1
+ require_relative 'pact_helper'
2
+ require 'pact_broker/client/webhooks/create'
3
+
4
+ RSpec.describe "creating a webhook", pact: true do
5
+
6
+ include_context "pact broker"
7
+ include PactBrokerPactHelperMethods
8
+
9
+ let(:params) do
10
+ {
11
+ http_method: "POST",
12
+ url: "https://webhook",
13
+ headers: { "Foo" => "bar", "Bar" => "foo"},
14
+ username: "username",
15
+ password: "password",
16
+ body: body,
17
+ consumer: "Condor",
18
+ provider: "Pricing Service",
19
+ events: ["contract_content_changed"]
20
+ }.tap { |it| Pact::Fixture.add_fixture(:create_webhook_params, it) }
21
+ end
22
+
23
+ let(:body) { { some: "body" }.to_json }
24
+
25
+ let(:request_body) do
26
+ {
27
+ "events" => [
28
+ {
29
+ "name" => "contract_content_changed"
30
+ }
31
+ ],
32
+ "request" => {
33
+ "url" => "https://webhook",
34
+ "method" => "POST",
35
+ "headers" => {
36
+ "Foo" => "bar",
37
+ "Bar" => "foo"
38
+ },
39
+ "body" => {
40
+ "some" => "body"
41
+ },
42
+ "username" => "username",
43
+ "password" => "password"
44
+ }
45
+ }
46
+ end
47
+
48
+ let(:success_response) do
49
+ {
50
+ status: 201,
51
+ headers: pact_broker_response_headers,
52
+ body: {
53
+ _links: {
54
+ self: {
55
+ href: Pact.term('http://localhost:1234/some-url', %r{http://.*}),
56
+ title: Pact.like("A title")
57
+ }
58
+ }
59
+ }
60
+ }
61
+ end
62
+
63
+ let(:pact_broker_client_options) { {} }
64
+
65
+ subject { PactBroker::Client::Webhooks::Create.call(params, broker_base_url, pact_broker_client_options) }
66
+
67
+ context "when a valid webhook with a JSON body is submitted" do
68
+ before do
69
+ pact_broker
70
+ .given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
71
+ .upon_receiving("a request to create a webhook with a JSON body for a consumer and provider")
72
+ .with(
73
+ method: :post,
74
+ path: '/webhooks/provider/Pricing%20Service/consumer/Condor',
75
+ headers: post_request_headers,
76
+ body: request_body)
77
+ .will_respond_with(success_response)
78
+ end
79
+
80
+ it "returns a CommandResult with success = true" do
81
+ expect(subject).to be_a PactBroker::Client::CommandResult
82
+ expect(subject.success).to be true
83
+ expect(subject.message).to eq "Webhook \"A title\" created"
84
+ end
85
+ end
86
+
87
+ context "when a valid webhook with an XML body is submitted" do
88
+ before do
89
+ request_body["request"]["body"] = body
90
+
91
+ pact_broker
92
+ .given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
93
+ .upon_receiving("a request to create a webhook with a non-JSON body for a consumer and provider")
94
+ .with(
95
+ method: :post,
96
+ path: '/webhooks/provider/Pricing%20Service/consumer/Condor',
97
+ headers: post_request_headers,
98
+ body: request_body)
99
+ .will_respond_with(success_response)
100
+ end
101
+
102
+ let(:body) { "<xml></xml>" }
103
+
104
+ it "returns a CommandResult with success = true" do
105
+ expect(subject.success).to be true
106
+ end
107
+ end
108
+
109
+ context "when an invalid webhook is submitted" do
110
+ before do
111
+ params[:url] = nil
112
+ request_body["request"]["url"] = nil
113
+
114
+ pact_broker
115
+ .given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
116
+ .upon_receiving("an invalid request to create a webhook for a consumer and provider")
117
+ .with(
118
+ method: :post,
119
+ path: '/webhooks/provider/Pricing%20Service/consumer/Condor',
120
+ headers: post_request_headers,
121
+ body: request_body).
122
+ will_respond_with(
123
+ status: 400,
124
+ headers: pact_broker_response_headers,
125
+ body: {
126
+ errors: {
127
+ "request.url" => Pact.each_like("Some error")
128
+ }
129
+ }
130
+ )
131
+ end
132
+
133
+ it "returns a CommandResult with success = false" do
134
+ expect(subject.success).to be false
135
+ expect(subject.message).to match /400/
136
+ expect(subject.message).to match /Some error/
137
+ end
138
+ end
139
+
140
+ context "when one of the pacticipants does not exist" do
141
+ before do
142
+ pact_broker
143
+ .given("'Condor' does not exist in the pact-broker")
144
+ .upon_receiving("a request to create a webhook for a consumer and provider")
145
+ .with(
146
+ method: :post,
147
+ path: '/webhooks/provider/Pricing%20Service/consumer/Condor',
148
+ headers: post_request_headers,
149
+ body: request_body).
150
+ will_respond_with(
151
+ status: 404,
152
+ headers: pact_broker_response_headers
153
+ )
154
+ end
155
+
156
+ it "returns a CommandResult with success = false" do
157
+ expect(subject.success).to be false
158
+ expect(subject.message).to match /404/
159
+ end
160
+ end
161
+
162
+ context "when only a consumer is specified" do
163
+ before do
164
+ params.delete(:provider)
165
+ request_body["consumer"] = { "name" => "Condor" }
166
+ mock_pact_broker_index(self)
167
+
168
+ pact_broker
169
+ .given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
170
+ .upon_receiving("a request to create a webhook with a JSON body for a consumer")
171
+ .with(
172
+ method: :post,
173
+ path: placeholder_path('pb:webhooks'),
174
+ headers: post_request_headers,
175
+ body: request_body)
176
+ .will_respond_with(success_response)
177
+ end
178
+
179
+ it "returns a CommandResult with success = true" do
180
+ expect(subject.success).to be true
181
+ expect(subject.message).to eq "Webhook \"A title\" created"
182
+ end
183
+ end
184
+
185
+ context "when only a consumer is specified and it does not exist" do
186
+ before do
187
+ params.delete(:provider)
188
+ request_body["consumer"] = { "name" => "Condor" }
189
+ mock_pact_broker_index(self)
190
+
191
+ pact_broker
192
+ .upon_receiving("a request to create a webhook with a JSON body for a consumer that does not exist")
193
+ .with(
194
+ method: :post,
195
+ path: placeholder_path('pb:webhooks'),
196
+ headers: post_request_headers,
197
+ body: request_body)
198
+ .will_respond_with(
199
+ status: 400,
200
+ headers: pact_broker_response_headers,
201
+ body: {
202
+ errors: {
203
+ "consumer.name" => Pact.each_like("Some error")
204
+ }
205
+ })
206
+ end
207
+
208
+ it "returns a CommandResult with success = true" do
209
+ expect(subject.success).to be false
210
+ end
211
+ end
212
+
213
+ context "when only a provider is specified" do
214
+ before do
215
+ params.delete(:consumer)
216
+ request_body["provider"] = { "name" => "Pricing Service" }
217
+ mock_pact_broker_index(self)
218
+
219
+ pact_broker
220
+ .given("the 'Pricing Service' and 'Condor' already exist in the pact-broker")
221
+ .upon_receiving("a request to create a webhook with a JSON body for a provider")
222
+ .with(
223
+ method: :post,
224
+ path: placeholder_path('pb:webhooks'),
225
+ headers: post_request_headers,
226
+ body: request_body)
227
+ .will_respond_with(success_response)
228
+ end
229
+
230
+ it "returns a CommandResult with success = true" do
231
+ expect(subject.success).to be true
232
+ end
233
+ end
234
+
235
+ context "when neither consumer nor provider are specified" do
236
+ before do
237
+ params.delete(:consumer)
238
+ params.delete(:provider)
239
+ mock_pact_broker_index(self)
240
+
241
+ pact_broker
242
+ .upon_receiving("a request to create a global webhook with a JSON body")
243
+ .with(
244
+ method: :post,
245
+ path: placeholder_path('pb:webhooks'),
246
+ headers: post_request_headers,
247
+ body: request_body)
248
+ .will_respond_with(success_response)
249
+ end
250
+
251
+ it "returns a CommandResult with success = true" do
252
+ expect(subject.success).to be true
253
+ end
254
+ end
255
+ end
@@ -4,10 +4,42 @@ WebMock.disable_net_connect!(allow_localhost: true)
4
4
 
5
5
  require "./spec/support/shared_context.rb"
6
6
 
7
+ is_windows = (RbConfig::CONFIG['host_os'] =~ /bccwin|cygwin|djgpp|mingw|mswin|wince/i) != nil
8
+
7
9
  RSpec.configure do | config |
8
10
 
9
11
  config.before(:each) do
10
12
  ENV.delete('PACT_BROKER_BASE_URL')
13
+ ENV.delete('PACT_BROKER_USERNAME')
14
+ ENV.delete('PACT_BROKER_PASSWORD')
15
+ end
16
+
17
+ config.after(:all) do
18
+ Pact::Fixture.check_fixtures
11
19
  end
12
20
 
21
+ config.filter_run_excluding :skip_windows => is_windows
22
+ config.example_status_persistence_file_path = "./spec/examples.txt"
23
+ end
24
+
25
+ module Pact
26
+ module Fixture
27
+
28
+ def self.add_fixture key, value
29
+ fixtures[key] ||= []
30
+ fixtures[key] << value
31
+ end
32
+
33
+ def self.fixtures
34
+ @fixtures ||= {}
35
+ end
36
+
37
+ def self.check_fixtures
38
+ fixtures.each do | fixture_group |
39
+ if fixture_group.size > 1
40
+ #TODO compare fixtures to ensure they match
41
+ end
42
+ end
43
+ end
44
+ end
13
45
  end
@@ -4,7 +4,7 @@
4
4
  "href": "http://example.org/pacticipants/Pricing%20Service",
5
5
  "title": "Pricing Service"
6
6
  },
7
- "pacts": [
7
+ "pb:pacts": [
8
8
  {
9
9
  "href": "http://example.org/pacts/provider/Pricing%20Service/consumer/Condor/version/1.3.0",
10
10
  "title": "Pact between Condor (v1.3.0) and Pricing Service",
@@ -5,13 +5,16 @@ shared_context "pact broker" do
5
5
  let(:consumer_contract) { Pact::ConsumerContract.from_hash pact_hash }
6
6
  let(:pact_json) { pact_hash.to_json }
7
7
  let(:pact_broker_client) { PactBroker::Client::PactBrokerClient.new(client_config) }
8
- let(:client_config) { { base_url: 'http://localhost:1234' } }
8
+ let(:broker_base_url) { 'http://localhost:1234' }
9
+ let(:client_config) { { base_url: broker_base_url } }
9
10
  let(:consumer_version) { '1.3.0' }
10
11
  let(:version) { '1.3.0' }
11
12
  let(:pact_broker_version) { Pact::Term.new(:matcher => /\d+\.\d+\.\d+/, :generate => '1.0.0') }
12
- let(:pact_broker_response_headers) { {} }
13
+ let(:pact_broker_response_headers) { {'Content-Type' => 'application/hal+json;charset=utf-8'} }
13
14
  let(:default_request_headers) { { 'Content-Type' => 'application/json'} }
14
15
  let(:patch_request_headers) { { 'Content-Type' => 'application/json'} }
15
- let(:get_request_headers) { { 'Accept' => 'application/json'} }
16
+ let(:put_request_headers) { { 'Content-Type' => 'application/json', 'Accept' => 'application/hal+json'} }
17
+ let(:post_request_headers) { { 'Content-Type' => 'application/json', 'Accept' => 'application/hal+json'} }
18
+ let(:get_request_headers) { { 'Accept' => 'application/hal+json'} }
16
19
 
17
20
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pact_broker-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.1
4
+ version: 1.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Beth Skurrie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-11 00:00:00.000000000 Z
11
+ date: 2018-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -185,11 +185,18 @@ files:
185
185
  - lib/pact_broker/client/can_i_deploy.rb
186
186
  - lib/pact_broker/client/cli/broker.rb
187
187
  - lib/pact_broker/client/cli/can_i_deploy_long_desc.txt
188
+ - lib/pact_broker/client/cli/create_webhook_long_desc.txt
188
189
  - lib/pact_broker/client/cli/custom_thor.rb
189
190
  - lib/pact_broker/client/cli/version_selector_options_parser.rb
191
+ - lib/pact_broker/client/command_result.rb
190
192
  - lib/pact_broker/client/create_tag.rb
191
193
  - lib/pact_broker/client/error.rb
192
194
  - lib/pact_broker/client/git.rb
195
+ - lib/pact_broker/client/hal.rb
196
+ - lib/pact_broker/client/hal/entity.rb
197
+ - lib/pact_broker/client/hal/entry_point.rb
198
+ - lib/pact_broker/client/hal/http_client.rb
199
+ - lib/pact_broker/client/hal/link.rb
193
200
  - lib/pact_broker/client/matrix.rb
194
201
  - lib/pact_broker/client/matrix/formatter.rb
195
202
  - lib/pact_broker/client/matrix/json_formatter.rb
@@ -210,6 +217,7 @@ files:
210
217
  - lib/pact_broker/client/versions/formatter.rb
211
218
  - lib/pact_broker/client/versions/json_formatter.rb
212
219
  - lib/pact_broker/client/versions/text_formatter.rb
220
+ - lib/pact_broker/client/webhooks/create.rb
213
221
  - lib/pact_broker_client.rb
214
222
  - pact-broker-client.gemspec
215
223
  - script/generate-cli-usage.sh
@@ -220,9 +228,13 @@ files:
220
228
  - spec/lib/pact_broker/client/base_client_spec.rb
221
229
  - spec/lib/pact_broker/client/can_i_deploy_spec.rb
222
230
  - spec/lib/pact_broker/client/cli/broker_can_i_deploy_spec.rb
231
+ - spec/lib/pact_broker/client/cli/broker_create_webhook_spec.rb
223
232
  - spec/lib/pact_broker/client/cli/broker_publish_spec.rb
224
233
  - spec/lib/pact_broker/client/cli/custom_thor_spec.rb
225
234
  - spec/lib/pact_broker/client/cli/version_selector_options_parser_spec.rb
235
+ - spec/lib/pact_broker/client/hal/entity_spec.rb
236
+ - spec/lib/pact_broker/client/hal/http_client_spec.rb
237
+ - spec/lib/pact_broker/client/hal/link_spec.rb
226
238
  - spec/lib/pact_broker/client/matrix/text_formatter_spec.rb
227
239
  - spec/lib/pact_broker/client/matrix_spec.rb
228
240
  - spec/lib/pact_broker/client/merge_pacts_spec.rb
@@ -232,6 +244,7 @@ files:
232
244
  - spec/lib/pact_broker/client/tasks/publication_task_spec.rb
233
245
  - spec/lib/pact_broker/client/versions/describe_spec.rb
234
246
  - spec/lib/pact_broker/client/versions_spec.rb
247
+ - spec/lib/pact_broker/client/webhooks/create_spec.rb
235
248
  - spec/pacts/pact_broker_client-pact_broker.json
236
249
  - spec/service_providers/extra_goodies_spec.rb
237
250
  - spec/service_providers/pact_broker_client_matrix_spec.rb
@@ -239,10 +252,11 @@ files:
239
252
  - spec/service_providers/pact_broker_client_publish_spec.rb
240
253
  - spec/service_providers/pact_broker_client_register_repository_spec.rb
241
254
  - spec/service_providers/pact_broker_client_retrieve_all_pacts_for_provider_spec.rb
242
- - spec/service_providers/pact_broker_client_retrive_pact_spec.rb
255
+ - spec/service_providers/pact_broker_client_retrieve_pact_spec.rb
243
256
  - spec/service_providers/pact_broker_client_tags_spec.rb
244
257
  - spec/service_providers/pact_broker_client_versions_spec.rb
245
258
  - spec/service_providers/pact_helper.rb
259
+ - spec/service_providers/webhooks_create_spec.rb
246
260
  - spec/spec_helper.rb
247
261
  - spec/support/cli_test_pacts/bar.json
248
262
  - spec/support/cli_test_pacts/foo.json
@@ -285,9 +299,13 @@ test_files:
285
299
  - spec/lib/pact_broker/client/base_client_spec.rb
286
300
  - spec/lib/pact_broker/client/can_i_deploy_spec.rb
287
301
  - spec/lib/pact_broker/client/cli/broker_can_i_deploy_spec.rb
302
+ - spec/lib/pact_broker/client/cli/broker_create_webhook_spec.rb
288
303
  - spec/lib/pact_broker/client/cli/broker_publish_spec.rb
289
304
  - spec/lib/pact_broker/client/cli/custom_thor_spec.rb
290
305
  - spec/lib/pact_broker/client/cli/version_selector_options_parser_spec.rb
306
+ - spec/lib/pact_broker/client/hal/entity_spec.rb
307
+ - spec/lib/pact_broker/client/hal/http_client_spec.rb
308
+ - spec/lib/pact_broker/client/hal/link_spec.rb
291
309
  - spec/lib/pact_broker/client/matrix/text_formatter_spec.rb
292
310
  - spec/lib/pact_broker/client/matrix_spec.rb
293
311
  - spec/lib/pact_broker/client/merge_pacts_spec.rb
@@ -297,6 +315,7 @@ test_files:
297
315
  - spec/lib/pact_broker/client/tasks/publication_task_spec.rb
298
316
  - spec/lib/pact_broker/client/versions/describe_spec.rb
299
317
  - spec/lib/pact_broker/client/versions_spec.rb
318
+ - spec/lib/pact_broker/client/webhooks/create_spec.rb
300
319
  - spec/pacts/pact_broker_client-pact_broker.json
301
320
  - spec/service_providers/extra_goodies_spec.rb
302
321
  - spec/service_providers/pact_broker_client_matrix_spec.rb
@@ -304,10 +323,11 @@ test_files:
304
323
  - spec/service_providers/pact_broker_client_publish_spec.rb
305
324
  - spec/service_providers/pact_broker_client_register_repository_spec.rb
306
325
  - spec/service_providers/pact_broker_client_retrieve_all_pacts_for_provider_spec.rb
307
- - spec/service_providers/pact_broker_client_retrive_pact_spec.rb
326
+ - spec/service_providers/pact_broker_client_retrieve_pact_spec.rb
308
327
  - spec/service_providers/pact_broker_client_tags_spec.rb
309
328
  - spec/service_providers/pact_broker_client_versions_spec.rb
310
329
  - spec/service_providers/pact_helper.rb
330
+ - spec/service_providers/webhooks_create_spec.rb
311
331
  - spec/spec_helper.rb
312
332
  - spec/support/cli_test_pacts/bar.json
313
333
  - spec/support/cli_test_pacts/foo.json