pact_broker 2.0.5 → 2.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/RELEASING.md +1 -1
- data/db/migrations/33_create_config_table.rb +1 -1
- data/db/migrations/34_create_index_on_consumer_version_order.rb +1 -1
- data/db/migrations/35_create_index_on_names.rb +1 -1
- data/db/pact_broker_database.sqlite3 +0 -0
- data/lib/pact_broker/api.rb +1 -0
- data/lib/pact_broker/api/resources/authentication.rb +30 -0
- data/lib/pact_broker/api/resources/base_resource.rb +14 -0
- data/lib/pact_broker/app.rb +2 -0
- data/lib/pact_broker/configuration.rb +34 -0
- data/lib/pact_broker/db/migrate.rb +15 -0
- data/lib/pact_broker/db/version.rb +17 -0
- data/lib/pact_broker/diagnostic/resources/base_resource.rb +13 -0
- data/lib/pact_broker/pacts/all_pact_publications.rb +5 -0
- data/lib/pact_broker/pacts/repository.rb +6 -1
- data/lib/pact_broker/repositories/helpers.rb +4 -0
- data/lib/pact_broker/tasks.rb +1 -0
- data/lib/pact_broker/tasks/migration_task.rb +7 -6
- data/lib/pact_broker/tasks/version_task.rb +38 -0
- data/lib/pact_broker/version.rb +1 -1
- data/lib/rack/pact_broker/ui_authentication.rb +26 -0
- data/pact_broker.gemspec +1 -0
- data/script/recreate-pg-db.sh +6 -5
- data/spec/features/create_webhook_spec.rb +2 -2
- data/spec/features/delete_pact_spec.rb +1 -1
- data/spec/features/delete_version_spec.rb +2 -2
- data/spec/features/delete_webhook_spec.rb +2 -2
- data/spec/features/get_diff_spec.rb +2 -2
- data/spec/features/get_latest_tagged_pact_spec.rb +22 -0
- data/spec/features/get_latest_untagged_pact_spec.rb +22 -0
- data/spec/features/get_pact_spec.rb +2 -2
- data/spec/features/get_pact_versions_spec.rb +2 -2
- data/spec/features/get_previous_distinct_version.rb +2 -2
- data/spec/features/get_provider_pacts_spec.rb +2 -2
- data/spec/features/get_verifications_for_consumer_version_spec.rb +2 -2
- data/spec/features/get_version_spec.rb +3 -3
- data/spec/features/get_versions_spec.rb +2 -2
- data/spec/features/merge_pact_spec.rb +2 -2
- data/spec/features/publish_pact_spec.rb +1 -1
- data/spec/features/publish_verification_spec.rb +1 -1
- data/spec/integration/app_spec.rb +1 -1
- data/spec/integration/endpoints/group.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/embedded_tag_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/api/decorators/embedded_version_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/latest_pact_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/relationships_csv_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/representable_pact_spec.rb +2 -2
- data/spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb +2 -2
- data/spec/lib/pact_broker/api/decorators/version_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/api/decorators/versions_decorator_spec.rb +1 -1
- data/spec/lib/pact_broker/app_spec.rb +128 -0
- data/spec/lib/pact_broker/domain/order_versions_spec.rb +4 -4
- data/spec/lib/pact_broker/domain/verification_spec.rb +2 -2
- data/spec/lib/pact_broker/domain/version_spec.rb +2 -2
- data/spec/lib/pact_broker/pacticipants/repository_spec.rb +4 -4
- data/spec/lib/pact_broker/pacticipants/service_spec.rb +1 -1
- data/spec/lib/pact_broker/pacts/diff_spec.rb +1 -1
- data/spec/lib/pact_broker/pacts/merger_spec.rb +1 -1
- data/spec/lib/pact_broker/pacts/pact_version_spec.rb +3 -3
- data/spec/lib/pact_broker/pacts/repository_spec.rb +61 -14
- data/spec/lib/pact_broker/tags/repository_spec.rb +4 -4
- data/spec/lib/pact_broker/tags/service_spec.rb +1 -1
- data/spec/lib/pact_broker/ui/controllers/relationships_spec.rb +1 -1
- data/spec/lib/pact_broker/verifications/repository_spec.rb +7 -7
- data/spec/lib/pact_broker/verifications/service_spec.rb +1 -1
- data/spec/lib/pact_broker/versions/repository_spec.rb +3 -3
- data/spec/lib/pact_broker/versions/service_spec.rb +1 -1
- data/spec/lib/pact_broker/webhooks/repository_spec.rb +2 -2
- data/spec/lib/pact_broker/webhooks/service_spec.rb +1 -1
- data/spec/service_consumers/provider_states_for_pact_broker_client.rb +10 -10
- data/spec/support/rspec_matchers.rb +2 -2
- data/spec/support/{provider_state_builder.rb → test_data_builder.rb} +2 -2
- data/tasks/database.rb +8 -9
- data/tasks/db.rake +0 -5
- data/tasks/test_db.rake +11 -0
- metadata +29 -5
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec/support/
|
1
|
+
require 'spec/support/test_data_builder'
|
2
2
|
|
3
3
|
describe "Delete version" do
|
4
4
|
|
@@ -8,7 +8,7 @@ describe "Delete version" do
|
|
8
8
|
subject { delete path; last_response }
|
9
9
|
|
10
10
|
before do
|
11
|
-
|
11
|
+
TestDataBuilder.new
|
12
12
|
.create_consumer("Another Consumer")
|
13
13
|
.create_consumer("Consumer")
|
14
14
|
.create_consumer_version("1.2.3")
|
@@ -1,9 +1,9 @@
|
|
1
|
-
require 'support/
|
1
|
+
require 'support/test_data_builder'
|
2
2
|
|
3
3
|
describe "Delete a webhook" do
|
4
4
|
|
5
5
|
let!(:webhook) do
|
6
|
-
|
6
|
+
TestDataBuilder.new
|
7
7
|
.create_consumer("Some Consumer")
|
8
8
|
.create_consumer_version("Some Provider")
|
9
9
|
.create_provider
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec/support/
|
1
|
+
require 'spec/support/test_data_builder'
|
2
2
|
|
3
3
|
describe "Get diff between versions" do
|
4
4
|
|
@@ -17,7 +17,7 @@ describe "Get diff between versions" do
|
|
17
17
|
let(:pact_content_version_3) { pact_content_version_2 }
|
18
18
|
|
19
19
|
before do
|
20
|
-
|
20
|
+
TestDataBuilder.new
|
21
21
|
.create_consumer("Consumer")
|
22
22
|
.create_provider("Provider")
|
23
23
|
.create_consumer_version("1")
|
@@ -0,0 +1,22 @@
|
|
1
|
+
describe "retrieving the latest tagged pact" do
|
2
|
+
|
3
|
+
let(:path) { "/pacts/provider/Provider/consumer/Consumer/latest/prod"}
|
4
|
+
|
5
|
+
subject { get path; last_response }
|
6
|
+
let(:json_response_body) { JSON.parse(subject.body, symbolize_names: true) }
|
7
|
+
|
8
|
+
before do
|
9
|
+
TestDataBuilder.new
|
10
|
+
.create_consumer("Consumer")
|
11
|
+
.create_provider("Provider")
|
12
|
+
.create_consumer_version("1.2.3")
|
13
|
+
.create_consumer_version_tag("prod")
|
14
|
+
.create_pact
|
15
|
+
.create_consumer_version("4.5.6")
|
16
|
+
.create_pact
|
17
|
+
end
|
18
|
+
|
19
|
+
it "returns the latest tagged pact version" do
|
20
|
+
expect(json_response_body[:_links][:self][:href]).to end_with("1.2.3")
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
describe "retrieving the latest untagged pact" do
|
2
|
+
|
3
|
+
let(:path) { "/pacts/provider/Provider/consumer/Consumer/latest-untagged"}
|
4
|
+
|
5
|
+
subject { get path; last_response }
|
6
|
+
let(:json_response_body) { JSON.parse(subject.body, symbolize_names: true) }
|
7
|
+
|
8
|
+
before do
|
9
|
+
TestDataBuilder.new
|
10
|
+
.create_consumer("Consumer")
|
11
|
+
.create_provider("Provider")
|
12
|
+
.create_consumer_version("1.2.3")
|
13
|
+
.create_pact
|
14
|
+
.create_consumer_version("4.5.6")
|
15
|
+
.create_consumer_version_tag('prod')
|
16
|
+
.create_pact
|
17
|
+
end
|
18
|
+
|
19
|
+
it "returns the latest untagged pact version" do
|
20
|
+
expect(json_response_body[:_links][:self][:href]).to end_with("1.2.3")
|
21
|
+
end
|
22
|
+
end
|
@@ -7,7 +7,7 @@ describe "retrieving a pact" do
|
|
7
7
|
let(:path) { "/pacts/provider/a%20provider/consumer/a%20consumer/version/1.2.3A" }
|
8
8
|
|
9
9
|
before do
|
10
|
-
|
10
|
+
TestDataBuilder.new.create_pact_with_hierarchy "A Consumer", "1.2.3a", "A Provider"
|
11
11
|
end
|
12
12
|
|
13
13
|
context "when case sensitivity is turned on" do
|
@@ -35,7 +35,7 @@ describe "retrieving a pact" do
|
|
35
35
|
let(:path) { "/pacts/provider/a%20provider/consumer/a%20consumer/latest/PROD" }
|
36
36
|
|
37
37
|
before do
|
38
|
-
|
38
|
+
TestDataBuilder.new
|
39
39
|
.create_consumer("A Consumer")
|
40
40
|
.create_consumer_version("1.2.3")
|
41
41
|
.create_consumer_version_tag("prod")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec/support/
|
1
|
+
require 'spec/support/test_data_builder'
|
2
2
|
|
3
3
|
describe "Get pact versions" do
|
4
4
|
|
@@ -10,7 +10,7 @@ describe "Get pact versions" do
|
|
10
10
|
context "when the pacts exist" do
|
11
11
|
|
12
12
|
before do
|
13
|
-
|
13
|
+
TestDataBuilder.new
|
14
14
|
.create_provider("Provider")
|
15
15
|
.create_consumer("Consumer")
|
16
16
|
.create_consumer_version("1.0.0")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec/support/
|
1
|
+
require 'spec/support/test_data_builder'
|
2
2
|
|
3
3
|
describe "Get previous distinct version of pact" do
|
4
4
|
|
@@ -16,7 +16,7 @@ describe "Get previous distinct version of pact" do
|
|
16
16
|
let(:pact_content_version_3) { pact_content_version_2 }
|
17
17
|
|
18
18
|
before do
|
19
|
-
|
19
|
+
TestDataBuilder.new
|
20
20
|
.create_consumer("Consumer")
|
21
21
|
.create_provider("Provider")
|
22
22
|
.create_consumer_version("1")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec/support/
|
1
|
+
require 'spec/support/test_data_builder'
|
2
2
|
|
3
3
|
describe "Get provider pacts" do
|
4
4
|
|
@@ -10,7 +10,7 @@ describe "Get provider pacts" do
|
|
10
10
|
context "when the provider exists" do
|
11
11
|
|
12
12
|
before do
|
13
|
-
|
13
|
+
TestDataBuilder.new
|
14
14
|
.create_provider("Provider")
|
15
15
|
.create_consumer("Consumer")
|
16
16
|
.create_consumer_version("1.0.0")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec/support/
|
1
|
+
require 'spec/support/test_data_builder'
|
2
2
|
|
3
3
|
describe "Get verifications for consumer version" do
|
4
4
|
|
@@ -10,7 +10,7 @@ describe "Get verifications for consumer version" do
|
|
10
10
|
context "when the consumer exists" do
|
11
11
|
|
12
12
|
before do
|
13
|
-
|
13
|
+
TestDataBuilder.new
|
14
14
|
.create_provider("Provider")
|
15
15
|
.create_consumer("Consumer")
|
16
16
|
.create_consumer_version("1.2.3")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec/support/
|
1
|
+
require 'spec/support/test_data_builder'
|
2
2
|
|
3
3
|
describe "Get version" do
|
4
4
|
|
@@ -10,7 +10,7 @@ describe "Get version" do
|
|
10
10
|
context "when the version exists" do
|
11
11
|
|
12
12
|
before do
|
13
|
-
|
13
|
+
TestDataBuilder.new
|
14
14
|
.create_consumer("Another Consumer")
|
15
15
|
.create_consumer("Consumer")
|
16
16
|
.create_consumer_version("1.2.3")
|
@@ -32,7 +32,7 @@ describe "Get version" do
|
|
32
32
|
context "when the version does not exist" do
|
33
33
|
|
34
34
|
before do
|
35
|
-
|
35
|
+
TestDataBuilder.new
|
36
36
|
.create_consumer("Consumer")
|
37
37
|
.create_version("1.2.4")
|
38
38
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec/support/
|
1
|
+
require 'spec/support/test_data_builder'
|
2
2
|
|
3
3
|
describe "Get versions" do
|
4
4
|
|
@@ -10,7 +10,7 @@ describe "Get versions" do
|
|
10
10
|
context "when the pacticipant exists" do
|
11
11
|
|
12
12
|
before do
|
13
|
-
|
13
|
+
TestDataBuilder.new
|
14
14
|
.create_consumer("Consumer")
|
15
15
|
.create_consumer_version("1.0.0")
|
16
16
|
.create_consumer_version("1.0.1")
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec/support/
|
1
|
+
require 'spec/support/test_data_builder'
|
2
2
|
|
3
3
|
describe "Merging a pact" do
|
4
4
|
|
@@ -29,7 +29,7 @@ describe "Merging a pact" do
|
|
29
29
|
let(:merged_pact_content) { load_fixture('a_consumer-a_provider-merged.json') }
|
30
30
|
|
31
31
|
before do
|
32
|
-
|
32
|
+
TestDataBuilder.new.create_pact_with_hierarchy "A Consumer", "1.2.3", "A Provider", existing_pact_content
|
33
33
|
end
|
34
34
|
|
35
35
|
it "returns a 200 Success" do
|
@@ -23,7 +23,7 @@ describe "Publishing a pact" do
|
|
23
23
|
context "when a pact for this consumer version does exist" do
|
24
24
|
|
25
25
|
before do
|
26
|
-
|
26
|
+
TestDataBuilder.new.create_pact_with_hierarchy "A Consumer", "1.2.3", "A Provider"
|
27
27
|
end
|
28
28
|
|
29
29
|
it "returns a 200 Success" do
|
@@ -9,7 +9,7 @@ describe "Recording a pact verification" do
|
|
9
9
|
subject { post path, verification_content, {'CONTENT_TYPE' => 'application/json' }; last_response }
|
10
10
|
|
11
11
|
let(:pact) do
|
12
|
-
|
12
|
+
TestDataBuilder.new
|
13
13
|
.create_provider("Provider")
|
14
14
|
.create_consumer("Consumer")
|
15
15
|
.create_consumer_version("1.2.3")
|
@@ -7,7 +7,7 @@ module PactBroker
|
|
7
7
|
describe App do
|
8
8
|
|
9
9
|
before do
|
10
|
-
|
10
|
+
TestDataBuilder.new.create_pact_with_hierarchy 'Some Consumer', '1.0', 'Some Provider'
|
11
11
|
end
|
12
12
|
|
13
13
|
let(:hal_browser_enabled) { true }
|
@@ -6,7 +6,7 @@ describe "/groups/{pacticipant-name}" do
|
|
6
6
|
|
7
7
|
describe "GET" do
|
8
8
|
before do
|
9
|
-
|
9
|
+
TestDataBuilder.new.create_pact_with_hierarchy "Consumer", "1.2.3", "Provider"
|
10
10
|
get "/groups/Consumer"
|
11
11
|
end
|
12
12
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'pact_broker/api/decorators/embedded_tag_decorator'
|
2
2
|
require 'pact_broker/tags/repository'
|
3
|
-
require 'support/
|
3
|
+
require 'support/test_data_builder'
|
4
4
|
|
5
5
|
module PactBroker
|
6
6
|
|
@@ -11,7 +11,7 @@ module PactBroker
|
|
11
11
|
describe EmbeddedTagDecorator do
|
12
12
|
|
13
13
|
let(:tag) do
|
14
|
-
|
14
|
+
TestDataBuilder.new
|
15
15
|
.create_consumer("Consumer")
|
16
16
|
.create_version("1.2.3")
|
17
17
|
.create_tag("prod")
|
@@ -7,7 +7,7 @@ module PactBroker
|
|
7
7
|
describe EmbeddedVersionDecorator do
|
8
8
|
|
9
9
|
let(:version) do
|
10
|
-
|
10
|
+
TestDataBuilder.new
|
11
11
|
.create_consumer("Consumer")
|
12
12
|
.create_version("1.2.3")
|
13
13
|
PactBroker::Versions::Repository.new.find_by_pacticipant_name_and_number "Consumer", "1.2.3"
|
@@ -9,7 +9,7 @@ module PactBroker
|
|
9
9
|
|
10
10
|
describe LatestPactDecorator do
|
11
11
|
|
12
|
-
let(:pact) { RepresentablePact.new(
|
12
|
+
let(:pact) { RepresentablePact.new(TestDataBuilder.new.create_pact_with_hierarchy 'Consumer', '1.2.3', 'Provider') }
|
13
13
|
let(:base_url) { 'http://example.org' }
|
14
14
|
|
15
15
|
subject { JSON.parse LatestPactDecorator.new(pact).to_json(user_options: { base_url: base_url }), symbolize_names: true}
|
@@ -9,7 +9,7 @@ module PactBroker
|
|
9
9
|
|
10
10
|
describe RelationshipsCsvDecorator do
|
11
11
|
|
12
|
-
let(:pact) {
|
12
|
+
let(:pact) { TestDataBuilder.new.create_pact_with_hierarchy "My Consumer", "1.0", "My Provider"}
|
13
13
|
let(:pacts) { [pact]}
|
14
14
|
|
15
15
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'spec/support/
|
2
|
+
require 'spec/support/test_data_builder'
|
3
3
|
require 'pact_broker/api/decorators/representable_pact'
|
4
4
|
|
5
5
|
module PactBroker::Api::Decorators
|
6
6
|
describe RepresentablePact do
|
7
|
-
let(:pact) {
|
7
|
+
let(:pact) { TestDataBuilder.new.create_pact_with_hierarchy 'Consumer', '1.2.3', 'Provider' }
|
8
8
|
|
9
9
|
subject { RepresentablePact.new(pact) }
|
10
10
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'pact_broker/api/decorators/tag_decorator'
|
2
2
|
require 'pact_broker/tags/repository'
|
3
3
|
|
4
|
-
require 'support/
|
4
|
+
require 'support/test_data_builder'
|
5
5
|
|
6
6
|
module PactBroker
|
7
7
|
|
@@ -12,7 +12,7 @@ module PactBroker
|
|
12
12
|
describe TagDecorator do
|
13
13
|
|
14
14
|
let(:tag) do
|
15
|
-
|
15
|
+
TestDataBuilder.new
|
16
16
|
.create_consumer("Consumer")
|
17
17
|
.create_version("1.2.3")
|
18
18
|
.create_tag("prod")
|
@@ -60,6 +60,134 @@ module PactBroker
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
+
describe "authenticate" do
|
64
|
+
before do
|
65
|
+
PactBroker.configuration.authenticate do | resource, authorization_header, options |
|
66
|
+
authorization_header == 'letmein'
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
context "with an invalid Authorization header" do
|
71
|
+
it "returns a 401" do
|
72
|
+
get "/", {}, {'HTTP_AUTHORIZATION' => 'wrong'}
|
73
|
+
expect(last_response.status).to eq 401
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
context "with valid Authorization header" do
|
78
|
+
it "returns a 200" do
|
79
|
+
get "/", {}, {'HTTP_AUTHORIZATION' => 'letmein'}
|
80
|
+
expect(last_response.status).to eq 200
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "authenticate_with_basic_auth" do
|
86
|
+
before do
|
87
|
+
PactBroker.configuration.authenticate_with_basic_auth do | resource, username, password, options |
|
88
|
+
username == 'username' && password == 'password'
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
context "with a request for the API with incorrect username or password" do
|
93
|
+
it "returns a 401" do
|
94
|
+
basic_authorize 'foo', 'password'
|
95
|
+
get "/"
|
96
|
+
expect(last_response.status).to eq 401
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
context "with a request for the UI with incorrect username or password" do
|
101
|
+
it "returns a 401" do
|
102
|
+
basic_authorize 'foo', 'password'
|
103
|
+
get "/", nil, {'HTTP_ACCEPT' => 'text/html'}
|
104
|
+
expect(last_response.status).to eq 401
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
context "with a request for diagnostics with incorrect username or password" do
|
109
|
+
it "returns a 401" do
|
110
|
+
basic_authorize 'foo', 'password'
|
111
|
+
get "/diagnostic/status/heartbeat"
|
112
|
+
expect(last_response.status).to eq 401
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
context "with a request for the API with correct username and password" do
|
117
|
+
it "returns a 200" do
|
118
|
+
basic_authorize 'username', 'password'
|
119
|
+
get "/"
|
120
|
+
expect(last_response.status).to eq 200
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
context "with a request for the UI with correct username or password" do
|
125
|
+
it "returns a 200" do
|
126
|
+
basic_authorize 'username', 'password'
|
127
|
+
get "/", nil, {'HTTP_ACCEPT' => 'text/html'}
|
128
|
+
expect(last_response.status).to eq 200
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
context "with a request for diagnostics with correct username or password" do
|
133
|
+
it "returns a 200" do
|
134
|
+
basic_authorize 'username', 'password'
|
135
|
+
get "/diagnostic/status/heartbeat"
|
136
|
+
expect(last_response.status).to eq 200
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
describe "authorize" do
|
142
|
+
before do
|
143
|
+
PactBroker.configuration.authorize do | resource, options |
|
144
|
+
resource.request.headers['Role'] == 'important'
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
context "with a request for the API with an authorized request" do
|
149
|
+
it "returns a 200" do
|
150
|
+
get "/", nil, {'HTTP_ROLE' => 'important'}
|
151
|
+
expect(last_response.status).to eq 200
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
context "with a request for the UI with an authorized request" do
|
156
|
+
it "returns a 200" do
|
157
|
+
get "/", nil, {'HTTP_ACCEPT' => 'text/html', 'HTTP_ROLE' => 'important'}
|
158
|
+
expect(last_response.status).to eq 200
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
context "with a request for diagnostics with an authorized request" do
|
163
|
+
it "returns a 200" do
|
164
|
+
get "/diagnostic/status/heartbeat", nil, {'HTTP_ROLE' => 'important'}
|
165
|
+
expect(last_response.status).to eq 200
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
context "with a request for the API with an unauthorized request" do
|
170
|
+
it "returns a 403" do
|
171
|
+
get "/"
|
172
|
+
expect(last_response.status).to eq 403
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
context "with a request for the UI with an unauthorized request" do
|
177
|
+
it "returns a 200 because there's no point doing authorization on the UI at the moment" do
|
178
|
+
get "/", nil, {'HTTP_ACCEPT' => 'text/html'}
|
179
|
+
expect(last_response.status).to eq 200
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
context "with a request for diagnostics with an unauthorized request" do
|
184
|
+
it "returns a 403" do
|
185
|
+
get "/diagnostic/status/heartbeat"
|
186
|
+
expect(last_response.status).to eq 403
|
187
|
+
end
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
63
191
|
describe "transactions", no_db_clean: true do
|
64
192
|
let(:pact_content) { load_fixture('a_consumer-a_provider.json') }
|
65
193
|
let(:path) { "/pacts/provider/A%20Provider/consumer/A%20Consumer/versions/1.2.3" }
|