pact_broker-client 1.75.3 → 1.75.4
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 +7 -0
- data/lib/pact_broker/client/version.rb +1 -1
- metadata +5 -216
- data/.github/workflows/test.yml +0 -59
- data/.rspec +0 -3
- data/lib/pact_broker/client/pacts/list_latest_versions.rb +0 -66
- data/lib/pact_broker/client/webhooks/test.rb +0 -16
- data/pact-broker-client.gemspec +0 -31
- data/spec/fixtures/MyConsumer-MyProvider (1).json +0 -37
- data/spec/fixtures/MyConsumer-MyProvider.json +0 -37
- data/spec/fixtures/approvals/can_i_deploy_failure_dry_run.approved.txt +0 -7
- data/spec/fixtures/approvals/can_i_deploy_ignore.approved.txt +0 -13
- data/spec/fixtures/approvals/can_i_deploy_success_dry_run.approved.txt +0 -7
- data/spec/fixtures/approvals/describe_environment.approved.txt +0 -7
- data/spec/fixtures/approvals/describe_pacticipant.approved.txt +0 -2
- data/spec/fixtures/approvals/list_environments.approved.txt +0 -3
- data/spec/fixtures/approvals/publish_provider_contract.approved.txt +0 -2
- data/spec/fixtures/certificates/ca_cert.pem +0 -19
- data/spec/fixtures/certificates/ca_cert.srl +0 -1
- data/spec/fixtures/certificates/ca_key.pem +0 -28
- data/spec/fixtures/certificates/client_cert.pem +0 -17
- data/spec/fixtures/certificates/key.pem +0 -28
- data/spec/fixtures/certificates/server.csr +0 -15
- data/spec/fixtures/certificates/unsigned_cert.pem +0 -19
- data/spec/fixtures/certificates/unsigned_key.pem +0 -28
- data/spec/fixtures/foo-bar.json +0 -31
- data/spec/integration/can_i_deploy_spec.rb +0 -24
- data/spec/integration/can_i_merge_spec.rb +0 -44
- data/spec/integration/create_version_tag_spec.rb +0 -20
- data/spec/integration/describe_environment_spec.rb +0 -31
- data/spec/integration/publish_provider_contract_spec.rb +0 -53
- data/spec/integration/unknown_options_spec.rb +0 -39
- data/spec/lib/pact_broker/client/base_client_spec.rb +0 -182
- data/spec/lib/pact_broker/client/branches/delete_branch_spec.rb +0 -103
- data/spec/lib/pact_broker/client/can_i_deploy_spec.rb +0 -250
- data/spec/lib/pact_broker/client/cli/broker_can_i_deploy_spec.rb +0 -196
- data/spec/lib/pact_broker/client/cli/broker_create_or_update_webhook_spec.rb +0 -23
- data/spec/lib/pact_broker/client/cli/broker_create_webhook_spec.rb +0 -23
- data/spec/lib/pact_broker/client/cli/broker_publish_spec.rb +0 -327
- data/spec/lib/pact_broker/client/cli/broker_run_webhook_commands_spec.rb +0 -287
- data/spec/lib/pact_broker/client/cli/custom_thor_spec.rb +0 -174
- data/spec/lib/pact_broker/client/cli/version_selector_options_parser_spec.rb +0 -97
- data/spec/lib/pact_broker/client/deployments/record_deployment_spec.rb +0 -224
- data/spec/lib/pact_broker/client/deployments/record_support_ended_spec.rb +0 -208
- data/spec/lib/pact_broker/client/deployments/record_undeployment_spec.rb +0 -227
- data/spec/lib/pact_broker/client/environments/delete_environment_spec.rb +0 -120
- data/spec/lib/pact_broker/client/environments/describe_environment_spec.rb +0 -89
- data/spec/lib/pact_broker/client/environments/update_environment_spec.rb +0 -167
- data/spec/lib/pact_broker/client/generate_display_name_spec.rb +0 -39
- data/spec/lib/pact_broker/client/git_spec.rb +0 -159
- data/spec/lib/pact_broker/client/hal/authorization_header_redactor_spec.rb +0 -17
- data/spec/lib/pact_broker/client/hal/entity_spec.rb +0 -149
- data/spec/lib/pact_broker/client/hal/http_client_spec.rb +0 -238
- data/spec/lib/pact_broker/client/hal/link_spec.rb +0 -127
- data/spec/lib/pact_broker/client/matrix/abbreviate_version_number_spec.rb +0 -42
- data/spec/lib/pact_broker/client/matrix/resource_spec.rb +0 -70
- data/spec/lib/pact_broker/client/matrix/text_formatter_spec.rb +0 -63
- data/spec/lib/pact_broker/client/matrix_spec.rb +0 -17
- data/spec/lib/pact_broker/client/merge_pacts_spec.rb +0 -198
- data/spec/lib/pact_broker/client/pact_broker_client_spec.rb +0 -47
- data/spec/lib/pact_broker/client/pacticipants/create_spec.rb +0 -31
- data/spec/lib/pact_broker/client/pacticipants_spec.rb +0 -18
- data/spec/lib/pact_broker/client/publish_pacts_the_old_way_spec.rb +0 -272
- data/spec/lib/pact_broker/client/retry_spec.rb +0 -119
- data/spec/lib/pact_broker/client/tasks/publication_task_spec.rb +0 -231
- data/spec/lib/pact_broker/client/versions/create_spec.rb +0 -174
- data/spec/lib/pact_broker/client/versions/describe_spec.rb +0 -64
- data/spec/lib/pact_broker/client/versions_spec.rb +0 -34
- data/spec/lib/pact_broker/client/webhooks/create_spec.rb +0 -99
- data/spec/lib/pactflow/client/provider_contracts/publish_spec.rb +0 -179
- data/spec/pacts/pact_broker_client-pact_broker.json +0 -2969
- data/spec/pacts/pact_broker_client-pactflow.json +0 -288
- data/spec/readme_spec.rb +0 -16
- data/spec/service_providers/create_environment_spec.rb +0 -78
- data/spec/service_providers/delete_branch_spec.rb +0 -68
- data/spec/service_providers/extra_goodies_spec.rb +0 -108
- data/spec/service_providers/list_environments_spec.rb +0 -77
- data/spec/service_providers/list_latest_pact_versions_spec.rb.bak +0 -44
- data/spec/service_providers/pact_broker_client_matrix_ignore_spec.rb +0 -98
- data/spec/service_providers/pact_broker_client_matrix_spec.rb +0 -292
- data/spec/service_providers/pact_broker_client_pacticipant_version_spec.rb +0 -56
- data/spec/service_providers/pact_broker_client_publish_spec.rb +0 -135
- data/spec/service_providers/pact_broker_client_register_repository_spec.rb +0 -49
- data/spec/service_providers/pact_broker_client_retrieve_all_pacts_for_provider_spec.rb +0 -53
- data/spec/service_providers/pact_broker_client_retrieve_pact_spec.rb +0 -109
- data/spec/service_providers/pact_broker_client_tags_spec.rb +0 -101
- data/spec/service_providers/pact_broker_client_versions_spec.rb +0 -113
- data/spec/service_providers/pact_helper.rb +0 -136
- data/spec/service_providers/pactflow_publish_provider_contract_spec.rb +0 -137
- data/spec/service_providers/pactflow_publish_provider_contract_the_old_way_spec.rb +0 -129
- data/spec/service_providers/pactflow_webhooks_create_spec.rb +0 -86
- data/spec/service_providers/pacticipants_create_spec.rb +0 -119
- data/spec/service_providers/publish_pacts_spec.rb +0 -114
- data/spec/service_providers/record_deployment_spec.rb +0 -199
- data/spec/service_providers/record_release_spec.rb +0 -130
- data/spec/service_providers/record_undeployment_spec.rb +0 -164
- data/spec/service_providers/webhooks_create_spec.rb +0 -391
- data/spec/spec_helper.rb +0 -68
- data/spec/support/approvals.rb +0 -26
- data/spec/support/cli_test_pacts/bar.json +0 -0
- data/spec/support/cli_test_pacts/foo.json +0 -0
- data/spec/support/latest_pacts_for_provider.json +0 -15
- data/spec/support/matrix.json +0 -35
- data/spec/support/matrix.txt +0 -3
- data/spec/support/matrix_error.txt +0 -3
- data/spec/support/matrix_with_results.txt +0 -10
- data/spec/support/pacticipant_get.json +0 -18
- data/spec/support/pacticipants_list.json +0 -26
- data/spec/support/pacts_latest_list.json +0 -41
- data/spec/support/shared_context.rb +0 -25
- data/spec/support/ssl_server.rb +0 -42
@@ -1,167 +0,0 @@
|
|
1
|
-
require 'pact_broker/client/environments/update_environment'
|
2
|
-
|
3
|
-
module PactBroker
|
4
|
-
module Client
|
5
|
-
module Environments
|
6
|
-
describe UpdateEnvironment do
|
7
|
-
before do
|
8
|
-
allow_any_instance_of(PactBroker::Client::Hal::HttpClient).to receive(:sleep)
|
9
|
-
allow_any_instance_of(PactBroker::Client::Hal::HttpClient).to receive(:default_max_tries).and_return(1)
|
10
|
-
end
|
11
|
-
|
12
|
-
let(:params) do
|
13
|
-
{
|
14
|
-
uuid: uuid,
|
15
|
-
name: "new name",
|
16
|
-
display_name: "new display name",
|
17
|
-
production: false
|
18
|
-
}
|
19
|
-
end
|
20
|
-
let(:options) do
|
21
|
-
{
|
22
|
-
output: output,
|
23
|
-
verbose: verbose
|
24
|
-
}
|
25
|
-
end
|
26
|
-
let(:uuid) { "a9aa4c22-66bb-45d3-ba4c-4916ac8b48c5" }
|
27
|
-
let(:pact_broker_base_url) { "http://example.org" }
|
28
|
-
let(:pact_broker_client_options) { { pact_broker_base_url: pact_broker_base_url } }
|
29
|
-
let(:response_headers) { { "Content-Type" => "application/hal+json"} }
|
30
|
-
let(:output) { "text" }
|
31
|
-
let(:verbose) { false }
|
32
|
-
|
33
|
-
before do
|
34
|
-
stub_request(:get, "http://example.org/").to_return(status: 200, body: index_response_body, headers: response_headers)
|
35
|
-
stub_request(:get, "http://example.org/environments/#{uuid}").to_return(status: get_environment_response_status, body: get_environment_response_body, headers: response_headers)
|
36
|
-
stub_request(:put, "http://example.org/environments/#{uuid}").to_return(status: put_response_status, body: put_environment_response_body, headers: response_headers)
|
37
|
-
end
|
38
|
-
let(:put_response_status) { 200 }
|
39
|
-
let(:get_environment_response_status) { 200 }
|
40
|
-
let(:put_request_body) do
|
41
|
-
{
|
42
|
-
name: "new name",
|
43
|
-
displayName: "new display name",
|
44
|
-
production: false
|
45
|
-
}.to_json
|
46
|
-
end
|
47
|
-
|
48
|
-
let(:index_response_body) do
|
49
|
-
{
|
50
|
-
"_links" => {
|
51
|
-
"pb:environments" => {},
|
52
|
-
"pb:environment" => {
|
53
|
-
"href" => "http://example.org/environments/{uuid}"
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}.to_json
|
57
|
-
end
|
58
|
-
|
59
|
-
let(:get_environment_response_body) do
|
60
|
-
{
|
61
|
-
name: "existing name",
|
62
|
-
displayName: "existing display name",
|
63
|
-
production: true
|
64
|
-
}.to_json
|
65
|
-
end
|
66
|
-
|
67
|
-
let(:put_environment_response_body) do
|
68
|
-
JSON.parse(get_environment_response_body).merge("updatedAt" => "2021-05-28T13:34:54+10:00").to_json
|
69
|
-
end
|
70
|
-
|
71
|
-
subject { UpdateEnvironment.call(params, options, pact_broker_client_options) }
|
72
|
-
|
73
|
-
it "updates the environment" do
|
74
|
-
request = stub_request(:put, "http://example.org/environments/#{uuid}").with(body: put_request_body)
|
75
|
-
subject
|
76
|
-
expect(request).to have_been_made
|
77
|
-
end
|
78
|
-
|
79
|
-
context "when update is successful" do
|
80
|
-
its(:success) { is_expected.to be true }
|
81
|
-
its(:message) { is_expected.to include "Updated new name environment in the Pact Broker" }
|
82
|
-
|
83
|
-
context "when output is json" do
|
84
|
-
let(:output) { "json" }
|
85
|
-
|
86
|
-
its(:message) { is_expected.to eq put_environment_response_body }
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
context "when environments are not supported" do
|
91
|
-
let(:index_response_body) { "{}" }
|
92
|
-
|
93
|
-
its(:success) { is_expected.to be false }
|
94
|
-
its(:message) { is_expected.to include "does not support environments" }
|
95
|
-
end
|
96
|
-
|
97
|
-
context "when a StandardError occurs" do
|
98
|
-
before do
|
99
|
-
allow_any_instance_of(described_class).to receive(:do_call).and_raise(StandardError.new("Foo"))
|
100
|
-
end
|
101
|
-
|
102
|
-
its(:success) { is_expected.to be false }
|
103
|
-
its(:message) { is_expected.to include "StandardError - Foo" }
|
104
|
-
|
105
|
-
context "when verbose is on" do
|
106
|
-
let(:verbose) { true }
|
107
|
-
|
108
|
-
it "includes the message and class and backtrace in the error" do
|
109
|
-
expect(subject.message.split("\n").size).to be > 2
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
context "when output is json" do
|
114
|
-
let(:output) { "json" }
|
115
|
-
|
116
|
-
it "includes the message and class in the error" do
|
117
|
-
message_hash = JSON.parse(subject.message)
|
118
|
-
expect(message_hash).to eq "error" => { "message" => "Foo", "class" => "StandardError" }
|
119
|
-
end
|
120
|
-
|
121
|
-
context "when verbose is on" do
|
122
|
-
let(:verbose) { true }
|
123
|
-
|
124
|
-
it "includes the message and class and backtrace in the error" do
|
125
|
-
message_hash = JSON.parse(subject.message)
|
126
|
-
expect(message_hash["error"]["backtrace"]).to be_a(Array)
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
context "when the environment does not exist" do
|
133
|
-
let(:get_environment_response_status) { 404 }
|
134
|
-
let(:get_environment_response_body) { "" }
|
135
|
-
let(:put_environment_response_body) { "" }
|
136
|
-
|
137
|
-
its(:success) { is_expected.to be false }
|
138
|
-
its(:message) { is_expected.to include get_environment_response_body }
|
139
|
-
|
140
|
-
context "when output is json" do
|
141
|
-
let(:output) { "json" }
|
142
|
-
|
143
|
-
its(:message) { is_expected.to eq "{}" }
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
context "when update is unsuccessful" do
|
148
|
-
let(:put_response_status) { 400 }
|
149
|
-
let(:put_environment_response_body) do
|
150
|
-
{
|
151
|
-
"some" => "error"
|
152
|
-
}.to_json
|
153
|
-
end
|
154
|
-
|
155
|
-
its(:success) { is_expected.to be false }
|
156
|
-
its(:message) { is_expected.to include put_environment_response_body }
|
157
|
-
|
158
|
-
context "when output is json" do
|
159
|
-
let(:output) { "json" }
|
160
|
-
|
161
|
-
its(:message) { is_expected.to eq put_environment_response_body }
|
162
|
-
end
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
167
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require 'pact_broker/client/generate_display_name'
|
2
|
-
|
3
|
-
module PactBroker
|
4
|
-
module Client
|
5
|
-
describe GenerateDisplayName do
|
6
|
-
describe ".call" do
|
7
|
-
TEST_CASES = {
|
8
|
-
"foo" => "Foo",
|
9
|
-
"MyService" => "My Service",
|
10
|
-
"my-service" => "My Service",
|
11
|
-
"my_service" => "My Service",
|
12
|
-
"my service" => "My Service",
|
13
|
-
"ABCService" => "ABC Service",
|
14
|
-
"A4Service" => "A4 Service",
|
15
|
-
"SNSPactEventConsumer" => "SNS Pact Event Consumer",
|
16
|
-
"AWSSummiteerWeb" => "AWS Summiteer Web",
|
17
|
-
"Beer-Consumer" => "Beer Consumer",
|
18
|
-
"foo.pretend-consumer" => "Foo Pretend Consumer",
|
19
|
-
"Client-XX" => "Client XX",
|
20
|
-
"providerJSWorkshop" => "Provider JS Workshop",
|
21
|
-
"e2e Provider Example" => "E2e Provider Example",
|
22
|
-
"MP - Our Provider" => "MP - Our Provider",
|
23
|
-
"PoC - Pact-broker-consumer" => "PoC - Pact Broker Consumer",
|
24
|
-
"QB-DATABASE Service" => "QB DATABASE Service",
|
25
|
-
"Support Species App (Provider)" => "Support Species App (Provider)",
|
26
|
-
9 => "9",
|
27
|
-
"" => "",
|
28
|
-
nil => nil
|
29
|
-
}
|
30
|
-
|
31
|
-
TEST_CASES.each do | name, expected_display_name |
|
32
|
-
it "converts #{name.inspect} to #{expected_display_name.inspect}" do
|
33
|
-
expect(GenerateDisplayName.call(name)).to eq expected_display_name
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,159 +0,0 @@
|
|
1
|
-
require 'pact_broker/client/git'
|
2
|
-
|
3
|
-
module PactBroker
|
4
|
-
module Client
|
5
|
-
module Git
|
6
|
-
describe ".branch" do
|
7
|
-
before do
|
8
|
-
allow(ENV).to receive(:[]).and_call_original
|
9
|
-
Git::BRANCH_ENV_VAR_NAMES.each do | env_var_name|
|
10
|
-
allow(ENV).to receive(:[]).with(env_var_name).and_return(nil)
|
11
|
-
end
|
12
|
-
allow(Git).to receive(:execute_git_command).and_return(" origin/HEAD \n origin/foo")
|
13
|
-
end
|
14
|
-
|
15
|
-
let(:raise_exception) { true }
|
16
|
-
|
17
|
-
subject { Git.branch(raise_error: raise_exception) }
|
18
|
-
|
19
|
-
shared_examples_for "when raise_error is false" do
|
20
|
-
context "when raise_error is false" do
|
21
|
-
let(:raise_exception) { false }
|
22
|
-
|
23
|
-
it { is_expected.to be nil }
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
context "when there is a known environment variable for the branch" do
|
28
|
-
before do
|
29
|
-
allow(ENV).to receive(:[]).with("BUILDKITE_BRANCH").and_return("")
|
30
|
-
allow(ENV).to receive(:[]).with("TRAVIS_BRANCH").and_return("foo")
|
31
|
-
end
|
32
|
-
|
33
|
-
it "returns the value of the environment variable" do
|
34
|
-
expect(subject).to eq "foo"
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
context "when the branch starts with refs/heads/" do
|
39
|
-
before do
|
40
|
-
allow(ENV).to receive(:[]).with("GITHUB_REF").and_return("refs/heads/feature-x")
|
41
|
-
end
|
42
|
-
|
43
|
-
it "trims off the refs/heads/" do
|
44
|
-
expect(subject).to eq "feature-x"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context "when there is one environment variable ending with _BRANCH" do
|
49
|
-
before do
|
50
|
-
allow(ENV).to receive(:keys).and_return(%w{FOO_BRANCH BAR_BRANCH BLAH})
|
51
|
-
allow(ENV).to receive(:[]).with("FOO_BRANCH").and_return("")
|
52
|
-
allow(ENV).to receive(:[]).with("BAR_BRANCH").and_return("meep")
|
53
|
-
end
|
54
|
-
|
55
|
-
it "returns the value of that environment variable" do
|
56
|
-
expect(subject).to eq "meep"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context "when there is more than one environment variable ending with _BRANCH" do
|
61
|
-
it "attempts to execute a git command to determine the value" do
|
62
|
-
expect(Git).to receive(:execute_git_command)
|
63
|
-
expect(subject).to_not be_empty
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
context "when there is no known environment variable for the branch", skip_ci: true do
|
68
|
-
it "attempts to execute a git command to determine the value" do
|
69
|
-
expect(Git).to receive(:execute_git_command)
|
70
|
-
expect(subject).to_not be_empty
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
context "when one git branch name is returned (apart from HEAD)" do
|
75
|
-
before do
|
76
|
-
allow(Git).to receive(:execute_git_command).and_return(" origin/HEAD \n origin/foo")
|
77
|
-
end
|
78
|
-
|
79
|
-
it "returns the branch" do
|
80
|
-
expect(subject).to eq "foo"
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
context "when two git branch names are returned (apart from HEAD)" do
|
85
|
-
before do
|
86
|
-
allow(Git).to receive(:execute_git_command).and_return(" origin/HEAD \n origin/foo \n origin/bar")
|
87
|
-
end
|
88
|
-
|
89
|
-
it "raises an error" do
|
90
|
-
expect { subject }.to raise_error PactBroker::Client::Error, /returned multiple branches: foo, bar/
|
91
|
-
end
|
92
|
-
|
93
|
-
include_examples "when raise_error is false"
|
94
|
-
end
|
95
|
-
|
96
|
-
|
97
|
-
context "when the git branch name comes back as an empty string" do
|
98
|
-
before do
|
99
|
-
allow(Git).to receive(:execute_git_command).and_return(" origin/HEAD")
|
100
|
-
end
|
101
|
-
|
102
|
-
it "raises an error" do
|
103
|
-
expect { subject }.to raise_error PactBroker::Client::Error, /didn't return anything/
|
104
|
-
end
|
105
|
-
|
106
|
-
include_examples "when raise_error is false"
|
107
|
-
end
|
108
|
-
|
109
|
-
context "when there is an error executing the git command" do
|
110
|
-
before do
|
111
|
-
allow(Git).to receive(:execute_git_command).and_raise("some error")
|
112
|
-
end
|
113
|
-
|
114
|
-
it "raises an error" do
|
115
|
-
expect { subject }.to raise_error PactBroker::Client::Error, /some error/
|
116
|
-
end
|
117
|
-
|
118
|
-
include_examples "when raise_error is false"
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
|
-
describe ".build_url" do
|
123
|
-
before do
|
124
|
-
allow(ENV).to receive(:[]).and_call_original
|
125
|
-
end
|
126
|
-
|
127
|
-
subject { Git.build_url }
|
128
|
-
|
129
|
-
context "when nothing is set" do
|
130
|
-
before do
|
131
|
-
allow(ENV).to receive(:[]).and_return(nil)
|
132
|
-
end
|
133
|
-
|
134
|
-
it { is_expected.to eq nil }
|
135
|
-
end
|
136
|
-
|
137
|
-
context "when BUILDKITE_BUILD_URL is set" do
|
138
|
-
before do
|
139
|
-
allow(ENV).to receive(:[]).and_return(nil)
|
140
|
-
allow(ENV).to receive(:[]).with("BUILDKITE_BUILD_URL").and_return("http://build")
|
141
|
-
end
|
142
|
-
|
143
|
-
it { is_expected.to eq "http://build" }
|
144
|
-
end
|
145
|
-
|
146
|
-
context "when the Github Actions env vars are set" do
|
147
|
-
before do
|
148
|
-
allow(ENV).to receive(:[]).and_return(nil)
|
149
|
-
allow(ENV).to receive(:[]).with("GITHUB_SERVER_URL").and_return("https://github.com")
|
150
|
-
allow(ENV).to receive(:[]).with("GITHUB_REPOSITORY").and_return("org/repo")
|
151
|
-
allow(ENV).to receive(:[]).with("GITHUB_RUN_ID").and_return("1")
|
152
|
-
end
|
153
|
-
|
154
|
-
it { is_expected.to eq "https://github.com/org/repo/actions/runs/1" }
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|
158
|
-
end
|
159
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'pact_broker/client/hal/authorization_header_redactor'
|
2
|
-
|
3
|
-
module PactBroker
|
4
|
-
module Client
|
5
|
-
module Hal
|
6
|
-
describe AuthorizationHeaderRedactor do
|
7
|
-
let(:stream) { StringIO.new }
|
8
|
-
let(:stream_redactor) { AuthorizationHeaderRedactor.new(stream) }
|
9
|
-
|
10
|
-
it "redacts the authorizaton header" do
|
11
|
-
stream_redactor << "\\r\\nAuthorization: Bearer TOKEN\\r\\n"
|
12
|
-
expect(stream.string).to eq "\\r\\nAuthorization: [redacted]\\r\\n"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,149 +0,0 @@
|
|
1
|
-
require 'pact_broker/client/hal/entity'
|
2
|
-
require 'pact_broker/client/hal/http_client'
|
3
|
-
|
4
|
-
module PactBroker::Client
|
5
|
-
module Hal
|
6
|
-
describe Entity do
|
7
|
-
let(:http_client) do
|
8
|
-
instance_double('Pact::Hal::HttpClient', post: provider_response)
|
9
|
-
end
|
10
|
-
|
11
|
-
let(:provider_response) do
|
12
|
-
double('response', body: provider_hash, success?: true, status: status)
|
13
|
-
end
|
14
|
-
let(:status) { 200 }
|
15
|
-
|
16
|
-
let(:provider_hash) do
|
17
|
-
{
|
18
|
-
"name" => "Provider"
|
19
|
-
}
|
20
|
-
end
|
21
|
-
|
22
|
-
let(:pact_hash) do
|
23
|
-
{
|
24
|
-
"name" => "a name",
|
25
|
-
|
26
|
-
"_links" => {
|
27
|
-
"pb:provider" => {
|
28
|
-
"href" => "http://provider"
|
29
|
-
},
|
30
|
-
"pb:version-tag" => {
|
31
|
-
"href" => "http://provider/version/{version}/tag/{tag}"
|
32
|
-
}
|
33
|
-
}
|
34
|
-
}
|
35
|
-
end
|
36
|
-
|
37
|
-
subject(:entity) { Entity.new("http://pact", pact_hash, http_client) }
|
38
|
-
|
39
|
-
it "delegates to the properties in the data" do
|
40
|
-
expect(subject.name).to eq "a name"
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "post" do
|
44
|
-
let(:post_provider) { entity.post("pb:provider", {'some' => 'data'} ) }
|
45
|
-
|
46
|
-
it "executes an http request" do
|
47
|
-
expect(http_client).to receive(:post).with("http://provider", '{"some":"data"}', {})
|
48
|
-
post_provider
|
49
|
-
end
|
50
|
-
|
51
|
-
it "returns the entity for the relation" do
|
52
|
-
expect(post_provider).to be_a(Entity)
|
53
|
-
end
|
54
|
-
|
55
|
-
context "with template params" do
|
56
|
-
let(:post_provider) { entity._link("pb:version-tag").expand(version: "1", tag: "prod").post({'some' => 'data'} ) }
|
57
|
-
|
58
|
-
it "posts to the expanded URL" do
|
59
|
-
expect(http_client).to receive(:post).with("http://provider/version/1/tag/prod", '{"some":"data"}', {})
|
60
|
-
post_provider
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
describe "assert_success!" do
|
66
|
-
context "when the response is successful" do
|
67
|
-
it "returns the entity" do
|
68
|
-
expect(entity.assert_success!).to be entity
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
context "when the response is not successful and there is no response" do
|
73
|
-
subject(:entity) { ErrorEntity.new("http://pact", pact_hash, http_client) }
|
74
|
-
|
75
|
-
it "raises an error" do
|
76
|
-
expect { entity.assert_success! }.to raise_error ErrorResponseReturned, "Error making request to http://pact status="
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
context "when the response is not successful and there is a response" do
|
81
|
-
let(:response) { double('response', status: 200, raw_body: "body") }
|
82
|
-
|
83
|
-
subject(:entity) { ErrorEntity.new("http://pact", pact_hash, http_client, response) }
|
84
|
-
|
85
|
-
it "raises an error" do
|
86
|
-
expect { entity.assert_success! }.to raise_error ErrorResponseReturned, "Error making request to http://pact status=200 body"
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
describe "can?" do
|
92
|
-
context "when the relation exists" do
|
93
|
-
it "returns true" do
|
94
|
-
expect(subject.can?('pb:provider')).to be true
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
context "when the relation does not exist" do
|
99
|
-
it "returns false" do
|
100
|
-
expect(subject.can?('pb:consumer')).to be false
|
101
|
-
end
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
describe "_link!" do
|
106
|
-
context 'when the key exists' do
|
107
|
-
it 'returns a Link' do
|
108
|
-
expect(subject._link!('pb:provider')).to be_a(Link)
|
109
|
-
expect(subject._link!('pb:provider').href).to eq 'http://provider'
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
context 'when the key does not exist' do
|
114
|
-
it 'raises an error' do
|
115
|
-
expect { subject._link!('foo') }.to raise_error RelationNotFoundError, /Could not find relation 'foo' in resource at http:\/\/pact/
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
describe 'fetch' do
|
121
|
-
context 'when the key exists' do
|
122
|
-
it 'returns fetched value' do
|
123
|
-
expect(subject.fetch('pb:provider')).to eq("href" => 'http://provider')
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
context "when the key doesn't not exist" do
|
128
|
-
it 'returns nil' do
|
129
|
-
expect(subject.fetch('i-dont-exist')).to be nil
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
context "when a fallback key is provided" do
|
134
|
-
context "when the fallback value exists" do
|
135
|
-
it "returns the fallback value" do
|
136
|
-
expect(subject.fetch('i-dont-exist', 'pb:provider')).to eq("href" => 'http://provider')
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
context "when the fallback value does not exist" do
|
141
|
-
it "returns nil" do
|
142
|
-
expect(subject.fetch('i-dont-exist', 'i-also-dont-exist')).to be nil
|
143
|
-
end
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
end
|
149
|
-
end
|