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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/RELEASING.md +1 -1
  4. data/db/migrations/33_create_config_table.rb +1 -1
  5. data/db/migrations/34_create_index_on_consumer_version_order.rb +1 -1
  6. data/db/migrations/35_create_index_on_names.rb +1 -1
  7. data/db/pact_broker_database.sqlite3 +0 -0
  8. data/lib/pact_broker/api.rb +1 -0
  9. data/lib/pact_broker/api/resources/authentication.rb +30 -0
  10. data/lib/pact_broker/api/resources/base_resource.rb +14 -0
  11. data/lib/pact_broker/app.rb +2 -0
  12. data/lib/pact_broker/configuration.rb +34 -0
  13. data/lib/pact_broker/db/migrate.rb +15 -0
  14. data/lib/pact_broker/db/version.rb +17 -0
  15. data/lib/pact_broker/diagnostic/resources/base_resource.rb +13 -0
  16. data/lib/pact_broker/pacts/all_pact_publications.rb +5 -0
  17. data/lib/pact_broker/pacts/repository.rb +6 -1
  18. data/lib/pact_broker/repositories/helpers.rb +4 -0
  19. data/lib/pact_broker/tasks.rb +1 -0
  20. data/lib/pact_broker/tasks/migration_task.rb +7 -6
  21. data/lib/pact_broker/tasks/version_task.rb +38 -0
  22. data/lib/pact_broker/version.rb +1 -1
  23. data/lib/rack/pact_broker/ui_authentication.rb +26 -0
  24. data/pact_broker.gemspec +1 -0
  25. data/script/recreate-pg-db.sh +6 -5
  26. data/spec/features/create_webhook_spec.rb +2 -2
  27. data/spec/features/delete_pact_spec.rb +1 -1
  28. data/spec/features/delete_version_spec.rb +2 -2
  29. data/spec/features/delete_webhook_spec.rb +2 -2
  30. data/spec/features/get_diff_spec.rb +2 -2
  31. data/spec/features/get_latest_tagged_pact_spec.rb +22 -0
  32. data/spec/features/get_latest_untagged_pact_spec.rb +22 -0
  33. data/spec/features/get_pact_spec.rb +2 -2
  34. data/spec/features/get_pact_versions_spec.rb +2 -2
  35. data/spec/features/get_previous_distinct_version.rb +2 -2
  36. data/spec/features/get_provider_pacts_spec.rb +2 -2
  37. data/spec/features/get_verifications_for_consumer_version_spec.rb +2 -2
  38. data/spec/features/get_version_spec.rb +3 -3
  39. data/spec/features/get_versions_spec.rb +2 -2
  40. data/spec/features/merge_pact_spec.rb +2 -2
  41. data/spec/features/publish_pact_spec.rb +1 -1
  42. data/spec/features/publish_verification_spec.rb +1 -1
  43. data/spec/integration/app_spec.rb +1 -1
  44. data/spec/integration/endpoints/group.rb +1 -1
  45. data/spec/lib/pact_broker/api/decorators/embedded_tag_decorator_spec.rb +2 -2
  46. data/spec/lib/pact_broker/api/decorators/embedded_version_decorator_spec.rb +1 -1
  47. data/spec/lib/pact_broker/api/decorators/latest_pact_decorator_spec.rb +1 -1
  48. data/spec/lib/pact_broker/api/decorators/relationships_csv_decorator_spec.rb +1 -1
  49. data/spec/lib/pact_broker/api/decorators/representable_pact_spec.rb +2 -2
  50. data/spec/lib/pact_broker/api/decorators/tag_decorator_spec.rb +2 -2
  51. data/spec/lib/pact_broker/api/decorators/version_decorator_spec.rb +1 -1
  52. data/spec/lib/pact_broker/api/decorators/versions_decorator_spec.rb +1 -1
  53. data/spec/lib/pact_broker/app_spec.rb +128 -0
  54. data/spec/lib/pact_broker/domain/order_versions_spec.rb +4 -4
  55. data/spec/lib/pact_broker/domain/verification_spec.rb +2 -2
  56. data/spec/lib/pact_broker/domain/version_spec.rb +2 -2
  57. data/spec/lib/pact_broker/pacticipants/repository_spec.rb +4 -4
  58. data/spec/lib/pact_broker/pacticipants/service_spec.rb +1 -1
  59. data/spec/lib/pact_broker/pacts/diff_spec.rb +1 -1
  60. data/spec/lib/pact_broker/pacts/merger_spec.rb +1 -1
  61. data/spec/lib/pact_broker/pacts/pact_version_spec.rb +3 -3
  62. data/spec/lib/pact_broker/pacts/repository_spec.rb +61 -14
  63. data/spec/lib/pact_broker/tags/repository_spec.rb +4 -4
  64. data/spec/lib/pact_broker/tags/service_spec.rb +1 -1
  65. data/spec/lib/pact_broker/ui/controllers/relationships_spec.rb +1 -1
  66. data/spec/lib/pact_broker/verifications/repository_spec.rb +7 -7
  67. data/spec/lib/pact_broker/verifications/service_spec.rb +1 -1
  68. data/spec/lib/pact_broker/versions/repository_spec.rb +3 -3
  69. data/spec/lib/pact_broker/versions/service_spec.rb +1 -1
  70. data/spec/lib/pact_broker/webhooks/repository_spec.rb +2 -2
  71. data/spec/lib/pact_broker/webhooks/service_spec.rb +1 -1
  72. data/spec/service_consumers/provider_states_for_pact_broker_client.rb +10 -10
  73. data/spec/support/rspec_matchers.rb +2 -2
  74. data/spec/support/{provider_state_builder.rb → test_data_builder.rb} +2 -2
  75. data/tasks/database.rb +8 -9
  76. data/tasks/db.rake +0 -5
  77. data/tasks/test_db.rake +11 -0
  78. metadata +29 -5
@@ -1,4 +1,4 @@
1
- require 'spec/support/provider_state_builder'
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
- ProviderStateBuilder.new
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/provider_state_builder'
1
+ require 'support/test_data_builder'
2
2
 
3
3
  describe "Delete a webhook" do
4
4
 
5
5
  let!(:webhook) do
6
- ProviderStateBuilder.new
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/provider_state_builder'
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
- ProviderStateBuilder.new
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
- ProviderStateBuilder.new.create_pact_with_hierarchy "A Consumer", "1.2.3a", "A Provider"
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
- ProviderStateBuilder.new
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/provider_state_builder'
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
- ProviderStateBuilder.new
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/provider_state_builder'
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
- ProviderStateBuilder.new
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/provider_state_builder'
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
- ProviderStateBuilder.new
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/provider_state_builder'
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
- ProviderStateBuilder.new
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/provider_state_builder'
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
- ProviderStateBuilder.new
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
- ProviderStateBuilder.new
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/provider_state_builder'
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
- ProviderStateBuilder.new
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/provider_state_builder'
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
- ProviderStateBuilder.new.create_pact_with_hierarchy "A Consumer", "1.2.3", "A Provider", existing_pact_content
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
- ProviderStateBuilder.new.create_pact_with_hierarchy "A Consumer", "1.2.3", "A Provider"
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
- ProviderStateBuilder.new
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
- ProviderStateBuilder.new.create_pact_with_hierarchy 'Some Consumer', '1.0', 'Some Provider'
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
- ProviderStateBuilder.new.create_pact_with_hierarchy "Consumer", "1.2.3", "Provider"
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/provider_state_builder'
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
- ProviderStateBuilder.new
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
- ProviderStateBuilder.new
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(ProviderStateBuilder.new.create_pact_with_hierarchy 'Consumer', '1.2.3', 'Provider') }
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) { ProviderStateBuilder.new.create_pact_with_hierarchy "My Consumer", "1.0", "My Provider"}
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/provider_state_builder'
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) { ProviderStateBuilder.new.create_pact_with_hierarchy 'Consumer', '1.2.3', 'Provider' }
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/provider_state_builder'
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
- ProviderStateBuilder.new
15
+ TestDataBuilder.new
16
16
  .create_consumer("Consumer")
17
17
  .create_version("1.2.3")
18
18
  .create_tag("prod")
@@ -7,7 +7,7 @@ module PactBroker
7
7
  describe VersionDecorator do
8
8
 
9
9
  let(:version) do
10
- ProviderStateBuilder.new
10
+ TestDataBuilder.new
11
11
  .create_consumer("Consumer")
12
12
  .create_consumer_version("1.2.3")
13
13
  .create_consumer_version_tag("prod")
@@ -24,7 +24,7 @@ module PactBroker
24
24
 
25
25
  context "with versions" do
26
26
  let(:version) do
27
- ProviderStateBuilder.new
27
+ TestDataBuilder.new
28
28
  .create_consumer("Consumer")
29
29
  .create_consumer_version("1.2.3")
30
30
  .create_consumer_version_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" }