pact_broker 1.3.2.rc1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -0
- data/README.md +76 -17
- data/db/migrations/16_add_pact_content_foreign_key_to_pacts.rb +6 -0
- data/db/migrations/migration_helper.rb +11 -1
- data/example/Gemfile +1 -1
- data/example/pact_broker_database.sqlite3 +0 -0
- data/lib/db.rb +1 -0
- data/lib/pact_broker/api.rb +11 -2
- data/lib/pact_broker/api/decorators.rb +1 -1
- data/lib/pact_broker/api/decorators/base_decorator.rb +3 -3
- data/lib/pact_broker/api/decorators/basic_pacticipant_decorator.rb +0 -1
- data/lib/pact_broker/api/decorators/embedded_tag_decorator.rb +26 -0
- data/lib/pact_broker/api/decorators/embedded_version_decorator.rb +20 -0
- data/lib/pact_broker/api/decorators/pact_collection_decorator.rb +9 -3
- data/lib/pact_broker/api/decorators/pact_decorator.rb +70 -6
- data/lib/pact_broker/api/decorators/pact_pacticipant_decorator.rb +2 -2
- data/lib/pact_broker/api/decorators/pacticipant_collection_decorator.rb +4 -28
- data/lib/pact_broker/api/decorators/pacticipant_decorator.rb +2 -2
- data/lib/pact_broker/api/decorators/representable_pact.rb +4 -1
- data/lib/pact_broker/api/decorators/tag_decorator.rb +24 -1
- data/lib/pact_broker/api/decorators/timestamps.rb +2 -2
- data/lib/pact_broker/api/decorators/version_decorator.rb +27 -3
- data/lib/pact_broker/api/decorators/webhooks_decorator.rb +1 -1
- data/lib/pact_broker/api/pact_broker_urls.rb +10 -3
- data/lib/pact_broker/api/resources/index.rb +5 -5
- data/lib/pact_broker/api/resources/pact_content_diff.rb +40 -0
- data/lib/pact_broker/api/resources/previous_distinct_pact_version.rb +39 -0
- data/lib/pact_broker/api/resources/version.rb +36 -0
- data/lib/pact_broker/app.rb +2 -2
- data/lib/pact_broker/date_helper.rb +93 -0
- data/lib/pact_broker/doc/controllers/app.rb +1 -1
- data/lib/pact_broker/doc/views/consumer.markdown +7 -0
- data/lib/pact_broker/doc/views/diff-previous-distinct.markdown +5 -0
- data/lib/pact_broker/doc/views/latest-pact-version.markdown +7 -0
- data/lib/pact_broker/doc/views/latest-pact-versions.markdown +5 -0
- data/lib/pact_broker/doc/views/pact-versions.markdown +3 -0
- data/lib/pact_broker/doc/views/pact-webhooks.markdown +50 -0
- data/lib/pact_broker/doc/views/pacticipants.markdown +2 -0
- data/lib/pact_broker/doc/views/provider.markdown +7 -0
- data/lib/pact_broker/doc/views/tag-prod-version.markdown +7 -0
- data/lib/pact_broker/doc/views/tag-version.markdown +4 -0
- data/lib/pact_broker/doc/views/webhooks.markdown +2 -0
- data/lib/pact_broker/domain/pact.rb +6 -1
- data/lib/pact_broker/domain/tag.rb +0 -1
- data/lib/pact_broker/locale/en.yml +37 -1
- data/lib/pact_broker/pacts/all_pacts.rb +8 -0
- data/lib/pact_broker/pacts/create_formatted_diff.rb +20 -0
- data/lib/pact_broker/pacts/diff.rb +105 -0
- data/lib/pact_broker/pacts/repository.rb +43 -7
- data/lib/pact_broker/repositories/version_repository.rb +1 -0
- data/lib/pact_broker/services.rb +6 -1
- data/lib/pact_broker/services/pact_service.rb +6 -0
- data/lib/pact_broker/services/version_service.rb +2 -2
- data/lib/pact_broker/ui.rb +8 -3
- data/lib/pact_broker/ui/app.rb +2 -1
- data/lib/pact_broker/ui/controllers/base_controller.rb +1 -1
- data/lib/pact_broker/ui/controllers/clusters.rb +1 -1
- data/lib/pact_broker/ui/views/relationships/show.haml +11 -4
- data/lib/pact_broker/version.rb +1 -1
- data/pact_broker.gemspec +6 -4
- data/public/images/doc-text.svg +1 -0
- data/public/stylesheets/relationships.css +43 -1
- data/script/publish-2.sh +3 -0
- data/script/publish.sh +3 -0
- data/spec/features/delete_pact_spec.rb +1 -1
- data/spec/features/get_diff.rb +52 -0
- data/spec/features/get_previous_distinct_version.rb +51 -0
- data/spec/features/get_version.rb +45 -0
- data/spec/features/publish_pact_spec.rb +1 -1
- data/spec/fixtures/a_consumer-a_provider-2.json +22 -0
- data/spec/fixtures/a_consumer-a_provider.json +22 -0
- data/spec/fixtures/consumer-provider.json +4 -3
- data/spec/integration/app_spec.rb +6 -1
- data/spec/lib/pact_broker/api/decorators/embedded_tag_decorator_spec.rb +40 -0
- data/spec/lib/pact_broker/api/decorators/embedded_version_decorator_spec.rb +39 -0
- data/spec/lib/pact_broker/api/decorators/pact_decorator_spec.rb +52 -10
- data/spec/lib/pact_broker/api/decorators/pact_version_decorator_spec.rb +9 -1
- data/spec/lib/pact_broker/api/decorators/pacticipant_collection_decorator_spec.rb +36 -0
- data/spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb +57 -0
- data/spec/lib/pact_broker/api/decorators/version_decorator_spec.rb +49 -0
- data/spec/lib/pact_broker/api/decorators/webhooks_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/pacts/create_formatted_diff_spec.rb +33 -0
- data/spec/lib/pact_broker/pacts/diff_spec.rb +72 -0
- data/spec/lib/pact_broker/pacts/pact_params_spec.rb +2 -2
- data/spec/lib/pact_broker/pacts/repository_spec.rb +90 -0
- data/spec/lib/pact_broker/repositories/version_repository_spec.rb +10 -2
- data/spec/lib/pact_broker/ui/controllers/relationships_spec.rb +1 -1
- data/vendor/hal-browser/README.md +6 -0
- data/vendor/hal-browser/browser.html +5 -3
- data/vendor/hal-browser/js/hal.js +3 -0
- data/vendor/hal-browser/js/hal/resource.js +1 -0
- data/vendor/hal-browser/js/hal/views/embedded_resource.js +1 -0
- data/vendor/hal-browser/js/hal/views/query_uri_dialog.js +12 -2
- data/vendor/hal-browser/js/hal/views/resource.js +6 -1
- data/vendor/hal-browser/styles.css +10 -0
- data/vendor/hal-browser/vendor/js/{jquery-1.9.1.js → jquery-1.10.2.js} +4394 -4202
- data/vendor/hal-browser/vendor/js/jquery-1.10.2.min.js +6 -0
- data/vendor/hal-browser/vendor/js/jquery-1.10.2.min.map +1 -0
- metadata +90 -18
- data/db/migrations/15_add_value_to_tag.rb.wip +0 -5
- data/lib/pact_broker/doc/views/latest-pacts.markdown +0 -3
data/lib/pact_broker/services.rb
CHANGED
@@ -3,6 +3,7 @@ require 'pact_broker/services/pacticipant_service'
|
|
3
3
|
require 'pact_broker/services/tag_service'
|
4
4
|
require 'pact_broker/services/group_service'
|
5
5
|
require 'pact_broker/services/webhook_service'
|
6
|
+
require 'pact_broker/services/version_service'
|
6
7
|
|
7
8
|
module PactBroker
|
8
9
|
module Services
|
@@ -25,5 +26,9 @@ module PactBroker
|
|
25
26
|
def webhook_service
|
26
27
|
WebhookService
|
27
28
|
end
|
29
|
+
|
30
|
+
def version_service
|
31
|
+
VersionService
|
32
|
+
end
|
28
33
|
end
|
29
|
-
end
|
34
|
+
end
|
@@ -43,6 +43,12 @@ module PactBroker
|
|
43
43
|
pact_repository.find_all_pacts_between consumer, options
|
44
44
|
end
|
45
45
|
|
46
|
+
def find_previous_distinct_pact_version params
|
47
|
+
pact = find_pact params
|
48
|
+
return nil if pact.nil?
|
49
|
+
pact_repository.find_previous_distinct_pact pact
|
50
|
+
end
|
51
|
+
|
46
52
|
def find_distinct_pacts_between consumer, options
|
47
53
|
# Assumes pacts are sorted from newest to oldest
|
48
54
|
all = pact_repository.find_all_pacts_between consumer, options
|
@@ -7,8 +7,8 @@ module PactBroker
|
|
7
7
|
|
8
8
|
extend PactBroker::Repositories
|
9
9
|
|
10
|
-
def self.
|
11
|
-
|
10
|
+
def self.find_by_pacticipant_name_and_number params
|
11
|
+
version_repository.find_by_pacticipant_name_and_number params.fetch(:pacticipant_name), params.fetch(:pacticipant_version_number)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
data/lib/pact_broker/ui.rb
CHANGED
@@ -2,8 +2,13 @@
|
|
2
2
|
# Stop Padrino creating a log file, as it will try to create it in the gems directory
|
3
3
|
# http://www.padrinorb.com/api/Padrino/Logger.html
|
4
4
|
unless defined? PADRINO_LOGGER
|
5
|
-
PADRINO_LOGGER = {
|
5
|
+
PADRINO_LOGGER = {
|
6
|
+
production: { log_level: :error, stream: :stderr },
|
7
|
+
staging: { log_level: :error, stream: :stderr },
|
8
|
+
test: { log_level: :warn, stream: :stdout },
|
9
|
+
development: { log_level: :warn, stream: :stdout }
|
10
|
+
}
|
6
11
|
end
|
7
12
|
|
8
|
-
require 'pact_broker/ui/
|
9
|
-
|
13
|
+
require 'pact_broker/ui/app'
|
14
|
+
|
data/lib/pact_broker/ui/app.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
%head
|
2
2
|
%title
|
3
|
-
|
3
|
+
Pacts
|
4
4
|
%link{rel: 'stylesheet', href: '/css/bootstrap.min.css'}
|
5
5
|
%link{rel: 'stylesheet', href: '/stylesheets/relationships.css'}
|
6
6
|
%script{type: 'text/javascript', src:'/javascripts/jquery-2.1.1.min.js'}
|
@@ -14,9 +14,10 @@
|
|
14
14
|
HAL Browser
|
15
15
|
.container
|
16
16
|
%h1.page-header
|
17
|
-
|
17
|
+
Pacts
|
18
18
|
%table.table.table-bordered.table-striped{id: 'relationships'}
|
19
19
|
%thead
|
20
|
+
%th
|
20
21
|
%th.consumer
|
21
22
|
Consumer
|
22
23
|
%span.glyphicon.glyphicon-sort.relationships-sort
|
@@ -25,19 +26,22 @@
|
|
25
26
|
%th.provider
|
26
27
|
Provider
|
27
28
|
%span.glyphicon.glyphicon-sort.relationships-sort
|
29
|
+
%th
|
28
30
|
%tbody
|
29
31
|
|
30
32
|
- relationships.each do | relationship |
|
31
33
|
%tr
|
34
|
+
%td
|
32
35
|
%td.consumer
|
33
36
|
%a{:href => relationship.consumer_group_url}
|
34
37
|
= relationship.consumer_name
|
35
38
|
%td.pact
|
36
|
-
%a
|
37
|
-
%span.
|
39
|
+
%a{:href => relationship.latest_pact_url, :title => "View pact"}
|
40
|
+
%span.pact
|
38
41
|
%td.provider
|
39
42
|
%a{:href => relationship.provider_group_url}
|
40
43
|
= relationship.provider_name
|
44
|
+
%td
|
41
45
|
%div.relationships-size
|
42
46
|
= relationships.size_label
|
43
47
|
|
@@ -46,3 +50,6 @@ $(function(){
|
|
46
50
|
$("#relationships").tablesorter();
|
47
51
|
});
|
48
52
|
|
53
|
+
$(document).load(function(){
|
54
|
+
$("span.pact").load("/images/doc-text.svg");
|
55
|
+
});
|
data/lib/pact_broker/version.rb
CHANGED
data/pact_broker.gemspec
CHANGED
@@ -22,16 +22,18 @@ Gem::Specification.new do |gem|
|
|
22
22
|
#gem.add_runtime_dependency 'pact'
|
23
23
|
gem.add_runtime_dependency 'httparty'
|
24
24
|
gem.add_runtime_dependency 'json'
|
25
|
-
gem.add_runtime_dependency 'roar', '~> 0.
|
25
|
+
gem.add_runtime_dependency 'roar', '~> 1.0.0.beta2'
|
26
26
|
gem.add_runtime_dependency 'reform', '~> 1.0'
|
27
27
|
gem.add_runtime_dependency 'sequel', '~> 4.12'
|
28
|
-
gem.add_runtime_dependency 'webmachine', '
|
28
|
+
gem.add_runtime_dependency 'webmachine', '1.2'
|
29
29
|
gem.add_runtime_dependency 'versionomy', '~> 0.4'
|
30
30
|
gem.add_runtime_dependency 'rack'
|
31
31
|
gem.add_runtime_dependency 'redcarpet', '~>3.1'
|
32
|
-
gem.add_runtime_dependency 'pact', '~>1.
|
33
|
-
gem.add_runtime_dependency '
|
32
|
+
gem.add_runtime_dependency 'pact', '~>1.4'
|
33
|
+
gem.add_runtime_dependency 'pact-support', '~>0.1', '>=0.1.4'
|
34
|
+
gem.add_runtime_dependency 'padrino-core', '~>0.12.4'
|
34
35
|
gem.add_runtime_dependency 'haml'
|
36
|
+
gem.add_runtime_dependency 'trailblazer', '~>0.1.0'
|
35
37
|
|
36
38
|
gem.add_development_dependency 'sqlite3'
|
37
39
|
gem.add_development_dependency 'pry'
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg height="1000" width="714.286" viewBox="0 0 1000 714.286" xmlns="http://www.w3.org/2000/svg"><path d="M571.392 660.736v35.712q0 7.812 -5.022 12.834t-12.834 5.022h-392.832q-7.812 0 -12.834 -5.022t-5.022 -12.834v-35.712q0 -7.812 5.022 -12.834t12.834 -5.022h392.832q7.812 0 12.834 5.022t5.022 12.834zm0 -142.848v35.712q0 7.812 -5.022 12.834t-12.834 5.022h-392.832q-7.812 0 -12.834 -5.022t-5.022 -12.834v-35.712q0 -7.812 5.022 -12.834t12.834 -5.022h392.832q7.812 0 12.834 5.022t5.022 12.834zm-499.968 339.264h571.392v-428.544h-232.128q-22.32 0 -37.944 -15.624t-15.624 -37.944v-232.128h-285.696v714.24zm357.12 -499.968h209.808q-5.58 -16.182 -12.276 -22.878l-174.654 -174.654q-6.696 -6.696 -22.878 -12.276v209.808zm285.696 17.856v499.968q0 22.32 -15.624 37.944t-37.944 15.624h-607.104q-22.32 0 -37.944 -15.624t-15.624 -37.944v-749.952q0 -22.32 15.624 -37.944t37.944 -15.624h357.12q22.32 0 49.104 11.16t42.408 26.784l174.096 174.096q15.624 15.624 26.784 42.408t11.16 49.104z"/></svg>
|
@@ -11,6 +11,25 @@
|
|
11
11
|
border-left: none;
|
12
12
|
}
|
13
13
|
|
14
|
+
table#relationships {
|
15
|
+
table-layout: fixed;
|
16
|
+
}
|
17
|
+
|
18
|
+
table#relationships td,
|
19
|
+
table#relationships th {
|
20
|
+
text-align: left;
|
21
|
+
}
|
22
|
+
|
23
|
+
table#relationships th,
|
24
|
+
table#relationships td {
|
25
|
+
border-right: none;
|
26
|
+
border-left: none;
|
27
|
+
}
|
28
|
+
|
29
|
+
table#relationships td.pact {
|
30
|
+
text-align: center;
|
31
|
+
}
|
32
|
+
|
14
33
|
.relationships-size {
|
15
34
|
text-align: right;
|
16
35
|
color: gray;
|
@@ -24,4 +43,27 @@
|
|
24
43
|
padding-right: 20px;
|
25
44
|
}
|
26
45
|
|
27
|
-
body { padding-top: 10px; }
|
46
|
+
body { padding-top: 10px; }
|
47
|
+
|
48
|
+
.consumer, .provider {
|
49
|
+
text-align: center;
|
50
|
+
white-space: nowrap;
|
51
|
+
}
|
52
|
+
|
53
|
+
span.pact {
|
54
|
+
display: inline-block;
|
55
|
+
}
|
56
|
+
|
57
|
+
span.pact svg {
|
58
|
+
width: 20px !important;
|
59
|
+
height: 20px !important;
|
60
|
+
overflow: visible;
|
61
|
+
}
|
62
|
+
|
63
|
+
span.pact svg path {
|
64
|
+
fill: #111111;
|
65
|
+
}
|
66
|
+
|
67
|
+
span.pact:hover svg path {
|
68
|
+
fill: #2a6496;
|
69
|
+
}
|
data/script/publish-2.sh
ADDED
data/script/publish.sh
ADDED
@@ -1,6 +1,6 @@
|
|
1
1
|
describe "Deleting a pact" do
|
2
2
|
|
3
|
-
let(:pact_content) { load_fixture('
|
3
|
+
let(:pact_content) { load_fixture('a_consumer-a_provider.json') }
|
4
4
|
let(:path) { "/pacts/provider/A%20Provider/consumer/A%20Consumer/version/1.2.3" }
|
5
5
|
let(:response_body_json) { JSON.parse(subject.body) }
|
6
6
|
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec/support/provider_state_builder'
|
2
|
+
|
3
|
+
describe "Get diff between versions" do
|
4
|
+
|
5
|
+
let(:path) { "/pacts/provider/Provider/consumer/Consumer/version/3/diff/previous-distinct" }
|
6
|
+
|
7
|
+
let(:last_response_body) { JSON.parse(subject.body, symbolize_names: true) }
|
8
|
+
|
9
|
+
subject { get path; last_response }
|
10
|
+
|
11
|
+
let(:pact_content_version_1) do
|
12
|
+
hash = load_json_fixture('consumer-provider.json')
|
13
|
+
hash['interactions'].first['request']['method'] = 'post'
|
14
|
+
hash.to_json
|
15
|
+
end
|
16
|
+
let(:pact_content_version_2) { load_fixture('consumer-provider.json') }
|
17
|
+
let(:pact_content_version_3) { pact_content_version_2 }
|
18
|
+
|
19
|
+
before do
|
20
|
+
ProviderStateBuilder.new
|
21
|
+
.create_consumer("Consumer")
|
22
|
+
.create_provider("Provider")
|
23
|
+
.create_consumer_version("1")
|
24
|
+
.create_pact(pact_content_version_1)
|
25
|
+
.create_consumer_version("2")
|
26
|
+
.create_pact(pact_content_version_2)
|
27
|
+
.create_consumer_version("3")
|
28
|
+
.create_pact(pact_content_version_3)
|
29
|
+
end
|
30
|
+
|
31
|
+
context "when the versions exist" do
|
32
|
+
|
33
|
+
it "returns a 200 HAL JSON response" do
|
34
|
+
expect(subject).to be_a_hal_json_success_response
|
35
|
+
end
|
36
|
+
|
37
|
+
it "returns the JSON representation of the diff" do
|
38
|
+
expect(last_response_body).to include({})
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
43
|
+
context "when either version does not exist" do
|
44
|
+
|
45
|
+
let(:path) { "/pacts/provider/Provider/consumer/Consumer/versions/1/diff/previous-distinct" }
|
46
|
+
|
47
|
+
xit "returns a 404 response" do
|
48
|
+
expect(subject).to be_a_404_response
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec/support/provider_state_builder'
|
2
|
+
|
3
|
+
describe "Get previous distinct version of pact" do
|
4
|
+
|
5
|
+
let(:path) { "/pacts/provider/Provider/consumer/Consumer/version/3/previous-distinct" }
|
6
|
+
let(:last_response_body) { JSON.parse(subject.body, symbolize_names: true) }
|
7
|
+
|
8
|
+
subject { get path; last_response }
|
9
|
+
|
10
|
+
let(:pact_content_version_1) { load_fixture('consumer-provider.json') }
|
11
|
+
let(:pact_content_version_2) do
|
12
|
+
hash = load_json_fixture('consumer-provider.json')
|
13
|
+
hash['interactions'].first['request']['method'] = 'post'
|
14
|
+
hash.to_json
|
15
|
+
end
|
16
|
+
let(:pact_content_version_3) { pact_content_version_2 }
|
17
|
+
|
18
|
+
before do
|
19
|
+
ProviderStateBuilder.new
|
20
|
+
.create_consumer("Consumer")
|
21
|
+
.create_provider("Provider")
|
22
|
+
.create_consumer_version("1")
|
23
|
+
.create_pact(pact_content_version_1)
|
24
|
+
.create_consumer_version("2")
|
25
|
+
.create_pact(pact_content_version_2)
|
26
|
+
.create_consumer_version("3")
|
27
|
+
.create_pact(pact_content_version_3)
|
28
|
+
end
|
29
|
+
|
30
|
+
context "when the pact version exists" do
|
31
|
+
|
32
|
+
it "returns a 200 HAL JSON response" do
|
33
|
+
expect(subject).to be_a_hal_json_success_response
|
34
|
+
end
|
35
|
+
|
36
|
+
it "returns the JSON representation of the version" do
|
37
|
+
expect(last_response_body[:_links][:self][:href]).to end_with '/1'
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
context "when the version does not exist" do
|
43
|
+
|
44
|
+
let(:path) { "/pacts/provider/Provider/consumer/Consumer/version/1/previous-distinct" }
|
45
|
+
|
46
|
+
it "returns a 404 response" do
|
47
|
+
expect(subject).to be_a_404_response
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec/support/provider_state_builder'
|
2
|
+
|
3
|
+
describe "Get version" do
|
4
|
+
|
5
|
+
let(:path) { "/pacticipants/Consumer/versions/1.2.3" }
|
6
|
+
let(:last_response_body) { JSON.parse(subject.body, symbolize_names: true) }
|
7
|
+
|
8
|
+
subject { get path; last_response }
|
9
|
+
|
10
|
+
context "when the version exists" do
|
11
|
+
|
12
|
+
before do
|
13
|
+
ProviderStateBuilder.new
|
14
|
+
.create_consumer("Another Consumer")
|
15
|
+
.create_consumer("Consumer")
|
16
|
+
.create_consumer_version("1.2.3")
|
17
|
+
.create_consumer_version_tag("prod")
|
18
|
+
.create_consumer_version("1.2.4")
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
it "returns a 200 HAL JSON response" do
|
23
|
+
expect(subject).to be_a_hal_json_success_response
|
24
|
+
end
|
25
|
+
|
26
|
+
it "returns the JSON representation of the version" do
|
27
|
+
expect(last_response_body).to include number: '1.2.3'
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
context "when the version does not exist" do
|
33
|
+
|
34
|
+
before do
|
35
|
+
ProviderStateBuilder.new
|
36
|
+
.create_consumer("Consumer")
|
37
|
+
.create_version("1.2.4")
|
38
|
+
end
|
39
|
+
|
40
|
+
it "returns a 404 response" do
|
41
|
+
expect(subject).to be_a_404_response
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
describe "Publishing a pact" do
|
2
2
|
|
3
|
-
let(:pact_content) { load_fixture('
|
3
|
+
let(:pact_content) { load_fixture('a_consumer-a_provider.json') }
|
4
4
|
let(:path) { "/pacts/provider/A%20Provider/consumer/A%20Consumer/version/1.2.3" }
|
5
5
|
let(:response_body_json) { JSON.parse(subject.body) }
|
6
6
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"consumer": {
|
3
|
+
"name": "A Consumer"
|
4
|
+
},
|
5
|
+
"provider": {
|
6
|
+
"name": "A Provider"
|
7
|
+
},
|
8
|
+
"interactions": [
|
9
|
+
{
|
10
|
+
"description" : "a request for something",
|
11
|
+
"provider_state": null,
|
12
|
+
"request": {
|
13
|
+
"method": "post",
|
14
|
+
"path" : "/something"
|
15
|
+
},
|
16
|
+
"response": {
|
17
|
+
"status": 200,
|
18
|
+
"body" : "something"
|
19
|
+
}
|
20
|
+
}
|
21
|
+
]
|
22
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"consumer": {
|
3
|
+
"name": "A Consumer"
|
4
|
+
},
|
5
|
+
"provider": {
|
6
|
+
"name": "A Provider"
|
7
|
+
},
|
8
|
+
"interactions": [
|
9
|
+
{
|
10
|
+
"description" : "a request for something",
|
11
|
+
"provider_state": null,
|
12
|
+
"request": {
|
13
|
+
"method": "get",
|
14
|
+
"path" : "/something"
|
15
|
+
},
|
16
|
+
"response": {
|
17
|
+
"status": 200,
|
18
|
+
"body" : "something"
|
19
|
+
}
|
20
|
+
}
|
21
|
+
]
|
22
|
+
}
|