scalingo 3.4.0 → 3.6.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/.github/workflows/dependabot.yml +17 -0
- data/.github/workflows/publish.yml +1 -1
- data/.github/workflows/ruby.yml +3 -3
- data/.rubocop.yml +9 -21
- data/CHANGELOG.md +10 -0
- data/lib/scalingo/api/client.rb +6 -15
- data/lib/scalingo/api/response.rb +3 -3
- data/lib/scalingo/auth/tokens.rb +2 -2
- data/lib/scalingo/auth.rb +1 -1
- data/lib/scalingo/billing.rb +1 -1
- data/lib/scalingo/client.rb +6 -6
- data/lib/scalingo/configuration.rb +3 -3
- data/lib/scalingo/core_client.rb +2 -3
- data/lib/scalingo/regional/addons.rb +1 -1
- data/lib/scalingo/regional.rb +1 -1
- data/lib/scalingo/regional_database.rb +1 -1
- data/lib/scalingo/token_holder.rb +1 -1
- data/lib/scalingo/version.rb +1 -1
- data/scalingo.gemspec +5 -8
- metadata +13 -97
- data/spec/scalingo/api/client_spec.rb +0 -256
- data/spec/scalingo/api/endpoint_spec.rb +0 -45
- data/spec/scalingo/api/response_spec.rb +0 -301
- data/spec/scalingo/auth/keys_spec.rb +0 -58
- data/spec/scalingo/auth/scm_integrations_spec.rb +0 -58
- data/spec/scalingo/auth/tokens_spec.rb +0 -74
- data/spec/scalingo/auth/two_factor_auth_spec.rb +0 -69
- data/spec/scalingo/auth/user_spec.rb +0 -31
- data/spec/scalingo/auth_spec.rb +0 -15
- data/spec/scalingo/bearer_token_spec.rb +0 -72
- data/spec/scalingo/billing/profile_spec.rb +0 -55
- data/spec/scalingo/billing_spec.rb +0 -11
- data/spec/scalingo/client_spec.rb +0 -93
- data/spec/scalingo/configuration_spec.rb +0 -57
- data/spec/scalingo/core_client_spec.rb +0 -23
- data/spec/scalingo/regional/addons_spec.rb +0 -169
- data/spec/scalingo/regional/apps_spec.rb +0 -137
- data/spec/scalingo/regional/autoscalers_spec.rb +0 -84
- data/spec/scalingo/regional/collaborators_spec.rb +0 -69
- data/spec/scalingo/regional/containers_spec.rb +0 -67
- data/spec/scalingo/regional/deployments_spec.rb +0 -45
- data/spec/scalingo/regional/domains_spec.rb +0 -84
- data/spec/scalingo/regional/environment_spec.rb +0 -77
- data/spec/scalingo/regional/events_spec.rb +0 -65
- data/spec/scalingo/regional/logs_spec.rb +0 -39
- data/spec/scalingo/regional/metrics_spec.rb +0 -46
- data/spec/scalingo/regional/notifiers_spec.rb +0 -113
- data/spec/scalingo/regional/operations_spec.rb +0 -27
- data/spec/scalingo/regional/scm_repo_links_spec.rb +0 -48
- data/spec/scalingo/regional_database/backups_spec.rb +0 -58
- data/spec/scalingo/regional_database/databases_spec.rb +0 -39
- data/spec/scalingo/regional_database_spec.rb +0 -11
- data/spec/scalingo/regional_spec.rb +0 -14
- data/spec/scalingo/token_holder_spec.rb +0 -81
@@ -1,58 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Scalingo::Auth::ScmIntegrations do
|
4
|
-
describe_method "all" do
|
5
|
-
let(:stub_pattern) { "all-200" }
|
6
|
-
|
7
|
-
it_behaves_like "a collection response"
|
8
|
-
it_behaves_like "a non-paginated collection"
|
9
|
-
end
|
10
|
-
|
11
|
-
describe_method "create" do
|
12
|
-
context "success" do
|
13
|
-
let(:arguments) { meta[:create][:valid] }
|
14
|
-
let(:stub_pattern) { "create-201" }
|
15
|
-
|
16
|
-
it_behaves_like "a singular object response", 201
|
17
|
-
end
|
18
|
-
|
19
|
-
context "failure" do
|
20
|
-
let(:arguments) { meta[:create][:invalid] }
|
21
|
-
let(:stub_pattern) { "create-422" }
|
22
|
-
|
23
|
-
it_behaves_like "an unprocessable request"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe_method "show" do
|
28
|
-
context "success" do
|
29
|
-
let(:arguments) { meta[:id] }
|
30
|
-
let(:stub_pattern) { "show-200" }
|
31
|
-
|
32
|
-
it_behaves_like "a singular object response"
|
33
|
-
end
|
34
|
-
|
35
|
-
context "not found" do
|
36
|
-
let(:arguments) { meta[:not_found_id] }
|
37
|
-
let(:stub_pattern) { "show-404" }
|
38
|
-
|
39
|
-
it_behaves_like "a not found response"
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe_method "destroy" do
|
44
|
-
context "success" do
|
45
|
-
let(:arguments) { meta[:id] }
|
46
|
-
let(:stub_pattern) { "destroy-204" }
|
47
|
-
|
48
|
-
it_behaves_like "an empty response"
|
49
|
-
end
|
50
|
-
|
51
|
-
context "not found" do
|
52
|
-
let(:arguments) { meta[:not_found_id] }
|
53
|
-
let(:stub_pattern) { "destroy-404" }
|
54
|
-
|
55
|
-
it_behaves_like "a not found response"
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
@@ -1,74 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Scalingo::Auth::Tokens do
|
4
|
-
describe_method "exchange" do
|
5
|
-
subject { auth_guest.tokens }
|
6
|
-
|
7
|
-
context "with a valid token" do
|
8
|
-
let(:arguments) { meta[:exchange][:valid] }
|
9
|
-
let(:stub_pattern) { "exchange-200" }
|
10
|
-
|
11
|
-
it "should be successful" do
|
12
|
-
expect(response).to be_successful
|
13
|
-
expect(response.data[:token]).to be_present
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
context "with an invalid token" do
|
18
|
-
let(:arguments) { meta[:exchange][:invalid] }
|
19
|
-
let(:stub_pattern) { "exchange-401" }
|
20
|
-
|
21
|
-
it "should be rejected with an valid token" do
|
22
|
-
expect(response.status).to eq 401
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe_method "all" do
|
28
|
-
let(:stub_pattern) { "all-200" }
|
29
|
-
|
30
|
-
it_behaves_like "a collection response"
|
31
|
-
it_behaves_like "a non-paginated collection"
|
32
|
-
end
|
33
|
-
|
34
|
-
describe_method "create" do
|
35
|
-
context "success" do
|
36
|
-
let(:arguments) { meta[:create][:valid] }
|
37
|
-
let(:stub_pattern) { "create-201" }
|
38
|
-
|
39
|
-
it_behaves_like "a singular object response", 201
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe_method "renew" do
|
44
|
-
context "success" do
|
45
|
-
let(:arguments) { meta[:id] }
|
46
|
-
let(:stub_pattern) { "renew-200" }
|
47
|
-
|
48
|
-
it_behaves_like "a singular object response"
|
49
|
-
end
|
50
|
-
|
51
|
-
context "not found" do
|
52
|
-
let(:arguments) { meta[:not_found_id] }
|
53
|
-
let(:stub_pattern) { "renew-404" }
|
54
|
-
|
55
|
-
it_behaves_like "a not found response"
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
describe_method "destroy" do
|
60
|
-
context "success" do
|
61
|
-
let(:arguments) { meta[:id] }
|
62
|
-
let(:stub_pattern) { "destroy-204" }
|
63
|
-
|
64
|
-
it_behaves_like "an empty response"
|
65
|
-
end
|
66
|
-
|
67
|
-
context "not found" do
|
68
|
-
let(:arguments) { meta[:not_found_id] }
|
69
|
-
let(:stub_pattern) { "destroy-404" }
|
70
|
-
|
71
|
-
it_behaves_like "a not found response"
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Scalingo::Auth::TwoFactorAuth do
|
4
|
-
describe_method "status" do
|
5
|
-
let(:stub_pattern) { "status" }
|
6
|
-
|
7
|
-
it_behaves_like "a singular object response"
|
8
|
-
end
|
9
|
-
|
10
|
-
describe_method "initiate" do
|
11
|
-
context "success" do
|
12
|
-
let(:arguments) { Scalingo::Auth::TwoFactorAuth::DEFAULT_PROVIDER }
|
13
|
-
let(:stub_pattern) { "initiate-success" }
|
14
|
-
|
15
|
-
it_behaves_like "a singular object response", 201
|
16
|
-
end
|
17
|
-
|
18
|
-
context "wrong provider" do
|
19
|
-
let(:arguments) { meta[:initiate][:invalid] }
|
20
|
-
let(:stub_pattern) { "initiate-wrong-provider" }
|
21
|
-
|
22
|
-
it_behaves_like "a client error"
|
23
|
-
end
|
24
|
-
|
25
|
-
context "already enabled" do
|
26
|
-
let(:stub_pattern) { "initiate-already-enabled" }
|
27
|
-
|
28
|
-
it_behaves_like "a client error"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
describe_method "validate" do
|
33
|
-
context "success" do
|
34
|
-
let(:arguments) { meta[:validate][:valid] }
|
35
|
-
let(:stub_pattern) { "validate-success" }
|
36
|
-
let(:expected_keys) { %i[codes user] }
|
37
|
-
|
38
|
-
it_behaves_like "a singular object response", 201
|
39
|
-
end
|
40
|
-
|
41
|
-
context "wrong provider" do
|
42
|
-
let(:arguments) { meta[:validate][:invalid] }
|
43
|
-
let(:stub_pattern) { "validate-wrong" }
|
44
|
-
|
45
|
-
it_behaves_like "a client error"
|
46
|
-
end
|
47
|
-
|
48
|
-
context "already enabled" do
|
49
|
-
let(:arguments) { meta[:validate][:invalid] }
|
50
|
-
let(:stub_pattern) { "validate-not-initiated" }
|
51
|
-
|
52
|
-
it_behaves_like "a client error"
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe_method "disable" do
|
57
|
-
context "success" do
|
58
|
-
let(:stub_pattern) { "disable-success" }
|
59
|
-
|
60
|
-
it_behaves_like "a singular object response"
|
61
|
-
end
|
62
|
-
|
63
|
-
context "not enabled" do
|
64
|
-
let(:stub_pattern) { "disable-not-initiated" }
|
65
|
-
|
66
|
-
it_behaves_like "a client error"
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Scalingo::Auth::User do
|
4
|
-
describe_method "self" do
|
5
|
-
let(:stub_pattern) { "self" }
|
6
|
-
|
7
|
-
it_behaves_like "a singular object response"
|
8
|
-
end
|
9
|
-
|
10
|
-
describe_method "update" do
|
11
|
-
context "success" do
|
12
|
-
let(:arguments) { meta[:update][:valid] }
|
13
|
-
let(:stub_pattern) { "update-200" }
|
14
|
-
|
15
|
-
it_behaves_like "a singular object response"
|
16
|
-
end
|
17
|
-
|
18
|
-
context "unprocessable" do
|
19
|
-
let(:arguments) { meta[:update][:invalid] }
|
20
|
-
let(:stub_pattern) { "update-422" }
|
21
|
-
|
22
|
-
it_behaves_like "an unprocessable request"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe_method "stop_free_trial" do
|
27
|
-
let(:stub_pattern) { "stop-free-trial" }
|
28
|
-
|
29
|
-
it_behaves_like "a successful response"
|
30
|
-
end
|
31
|
-
end
|
data/spec/scalingo/auth_spec.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Scalingo::Auth do
|
4
|
-
subject { described_class.new("url") }
|
5
|
-
|
6
|
-
%w[keys scm_integrations tokens two_factor_auth user].each do |section|
|
7
|
-
it "handles requests for #{section}" do
|
8
|
-
expect(subject.respond_to?(section)).to be true
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
it "aliases tfa" do
|
13
|
-
expect(subject.tfa).to eq(subject.two_factor_auth)
|
14
|
-
end
|
15
|
-
end
|
@@ -1,72 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Scalingo::BearerToken do
|
4
|
-
let(:value) { "my-token" }
|
5
|
-
let(:expires_at) { nil }
|
6
|
-
let(:raise_on_expired) { false }
|
7
|
-
|
8
|
-
subject { described_class.new(value, expires_at: expires_at, raise_on_expired: raise_on_expired) }
|
9
|
-
|
10
|
-
describe "initialize" do
|
11
|
-
it "stores the value" do
|
12
|
-
instance = described_class.new(:value)
|
13
|
-
|
14
|
-
expect(instance.value).to eq(:value)
|
15
|
-
expect(instance.expires_at).to eq nil
|
16
|
-
end
|
17
|
-
|
18
|
-
it "stores the expiration" do
|
19
|
-
expiration = Time.now + 1.hour
|
20
|
-
instance = described_class.new(:value, expires_at: expiration)
|
21
|
-
|
22
|
-
expect(instance.value).to eq(:value)
|
23
|
-
expect(instance.expires_at).to eq expiration
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
describe "expired?" do
|
28
|
-
context "without expiration" do
|
29
|
-
it { expect(subject).not_to be_expired }
|
30
|
-
end
|
31
|
-
|
32
|
-
context "with the expiration in the future" do
|
33
|
-
let(:expires_at) { Time.current + 1.hour }
|
34
|
-
it { expect(subject).not_to be_expired }
|
35
|
-
end
|
36
|
-
|
37
|
-
context "with the expiration in the past" do
|
38
|
-
let(:expires_at) { Time.current - 1.minute }
|
39
|
-
it { expect(subject).to be_expired }
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe "value" do
|
44
|
-
context "when raising on expired token" do
|
45
|
-
let(:raise_on_expired) { true }
|
46
|
-
|
47
|
-
it "raises when expired" do
|
48
|
-
expect(subject).to receive(:expired?).and_return(true)
|
49
|
-
expect { subject.value }.to raise_error(Scalingo::Error::ExpiredToken)
|
50
|
-
end
|
51
|
-
|
52
|
-
it "returns the value when not expired" do
|
53
|
-
expect(subject).to receive(:expired?).and_return(false)
|
54
|
-
expect(subject.value).to eq(value)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
context "when not raising on expired token" do
|
59
|
-
let(:raise_on_expired) { false }
|
60
|
-
|
61
|
-
it "returns the value when expired" do
|
62
|
-
expect(subject).to receive(:expired?).and_return(true)
|
63
|
-
expect(subject.value).to eq(value)
|
64
|
-
end
|
65
|
-
|
66
|
-
it "returns the value when not expired" do
|
67
|
-
expect(subject).to receive(:expired?).and_return(false)
|
68
|
-
expect(subject.value).to eq(value)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Scalingo::Billing::Profile do
|
4
|
-
describe_method "show" do
|
5
|
-
context "existing" do
|
6
|
-
let(:stub_pattern) { "show-200" }
|
7
|
-
|
8
|
-
it_behaves_like "a singular object response"
|
9
|
-
end
|
10
|
-
|
11
|
-
context "not yet created" do
|
12
|
-
let(:stub_pattern) { "show-404" }
|
13
|
-
|
14
|
-
it_behaves_like "a not found response"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
describe_method "create" do
|
19
|
-
context "success" do
|
20
|
-
let(:arguments) { meta[:create][:valid] }
|
21
|
-
let(:stub_pattern) { "create-201" }
|
22
|
-
|
23
|
-
it_behaves_like "a singular object response", 201
|
24
|
-
end
|
25
|
-
|
26
|
-
context "already existing" do
|
27
|
-
let(:stub_pattern) { "create-400" }
|
28
|
-
|
29
|
-
it_behaves_like "a client error"
|
30
|
-
end
|
31
|
-
|
32
|
-
context "unprocessable" do
|
33
|
-
let(:arguments) { meta[:create][:invalid] }
|
34
|
-
let(:stub_pattern) { "create-422" }
|
35
|
-
|
36
|
-
it_behaves_like "an unprocessable request"
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
describe_method "update" do
|
41
|
-
context "success" do
|
42
|
-
let(:arguments) { [meta[:id], meta[:update][:valid]] }
|
43
|
-
let(:stub_pattern) { "update-200" }
|
44
|
-
|
45
|
-
it_behaves_like "a singular object response"
|
46
|
-
end
|
47
|
-
|
48
|
-
context "unprocessable" do
|
49
|
-
let(:arguments) { [meta[:id], meta[:update][:invalid]] }
|
50
|
-
let(:stub_pattern) { "update-422" }
|
51
|
-
|
52
|
-
it_behaves_like "an unprocessable request"
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
@@ -1,93 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Scalingo::Client do
|
4
|
-
subject { described_class.new }
|
5
|
-
|
6
|
-
describe "token" do
|
7
|
-
it "wraps the token in a BearerToken" do
|
8
|
-
expect(subject.token).to eq nil
|
9
|
-
|
10
|
-
subject.token = "my-token"
|
11
|
-
expect(subject.token).to be_a(Scalingo::BearerToken)
|
12
|
-
expect(subject.token.value).to eq "my-token"
|
13
|
-
|
14
|
-
subject.token = Scalingo::BearerToken.new("other-token")
|
15
|
-
expect(subject.token).to be_a(Scalingo::BearerToken)
|
16
|
-
expect(subject.token.value).to eq "other-token"
|
17
|
-
end
|
18
|
-
|
19
|
-
it "can query the authentication status" do
|
20
|
-
expect(subject).not_to be_authenticated
|
21
|
-
|
22
|
-
subject.token = "my-token"
|
23
|
-
expect(subject).to be_authenticated
|
24
|
-
|
25
|
-
subject.token = Scalingo::BearerToken.new("other-token")
|
26
|
-
allow(subject.token).to receive(:expired?).and_return(false)
|
27
|
-
expect(subject).to be_authenticated
|
28
|
-
|
29
|
-
allow(subject.token).to receive(:expired?).and_return(true)
|
30
|
-
expect(subject).not_to be_authenticated
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
describe "authenticate_with" do
|
35
|
-
it "raises without arguments" do
|
36
|
-
expect { subject.authenticate_with }.to raise_error(ArgumentError)
|
37
|
-
end
|
38
|
-
|
39
|
-
it "raises with both more than one authentication type" do
|
40
|
-
expect {
|
41
|
-
subject.authenticate_with(access_token: :a, bearer_token: :b)
|
42
|
-
}.to raise_error(ArgumentError)
|
43
|
-
end
|
44
|
-
|
45
|
-
it "raises if expires_at is supplied for an access_token" do
|
46
|
-
expect {
|
47
|
-
subject.authenticate_with(access_token: :a, expires_at: :b)
|
48
|
-
}.to raise_error(ArgumentError)
|
49
|
-
end
|
50
|
-
|
51
|
-
context "with access token" do
|
52
|
-
it "is successful with valid token" do
|
53
|
-
fake_response = OpenStruct.new(
|
54
|
-
successful?: true,
|
55
|
-
data: {token: "response token"},
|
56
|
-
)
|
57
|
-
|
58
|
-
expect(subject.auth.tokens).to receive(:exchange).and_return(fake_response)
|
59
|
-
|
60
|
-
expect(subject.authenticate_with(access_token: "access token")).to be true
|
61
|
-
expect(subject.token.value).to eq "response token"
|
62
|
-
expect(subject.token.expires_at).to be_within(1.second).of(Time.current + Scalingo.config.exchanged_token_validity)
|
63
|
-
end
|
64
|
-
|
65
|
-
it "fails with invalid token" do
|
66
|
-
fake_response = OpenStruct.new(
|
67
|
-
successful?: false,
|
68
|
-
)
|
69
|
-
|
70
|
-
expect(subject.auth.tokens).to receive(:exchange).and_return(fake_response)
|
71
|
-
|
72
|
-
expect(subject.authenticate_with(access_token: "access token")).to be false
|
73
|
-
expect(subject.token).to be nil
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
context "with bearer token" do
|
78
|
-
it "only sets the bearer token according to the arguments" do
|
79
|
-
expect(subject.authenticate_with(bearer_token: "my token")).to be true
|
80
|
-
expect(subject.token.value).to eq "my token"
|
81
|
-
expect(subject.token.expires_at).to eq nil
|
82
|
-
|
83
|
-
expect(subject.authenticate_with(bearer_token: Scalingo::BearerToken.new("my token"))).to be true
|
84
|
-
expect(subject.token.value).to eq "my token"
|
85
|
-
expect(subject.token.expires_at).to eq nil
|
86
|
-
|
87
|
-
expect(subject.authenticate_with(bearer_token: "my token", expires_at: Time.now + 1.hour)).to be true
|
88
|
-
expect(subject.token.value).to eq "my token"
|
89
|
-
expect(subject.token.expires_at).not_to eq nil
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Scalingo::Configuration do
|
4
|
-
subject { described_class.default }
|
5
|
-
|
6
|
-
describe "inheritance" do
|
7
|
-
it "can inherit configuration from a parent" do
|
8
|
-
object = described_class.new({}, subject)
|
9
|
-
|
10
|
-
described_class::ATTRIBUTES.each do |attr|
|
11
|
-
expect(object.public_send(attr)).to eq subject.public_send(attr)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
it "can uses local configuration when supplied, the parent other wise" do
|
16
|
-
object = described_class.new({user_agent: "Agent"}, subject)
|
17
|
-
|
18
|
-
(described_class::ATTRIBUTES - [:user_agent]).each do |attr|
|
19
|
-
expect(object.public_send(attr)).to eq subject.public_send(attr)
|
20
|
-
end
|
21
|
-
|
22
|
-
expect(object.user_agent).to eq "Agent"
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
describe "faraday adapter" do
|
27
|
-
let(:scalingo) { Scalingo::Client.new(config).tap { |s| s.authenticate_with(bearer_token: "some-token") } }
|
28
|
-
let(:client) { Scalingo::API::Client.new("http://example.test", scalingo: scalingo) }
|
29
|
-
|
30
|
-
context "when unspecified" do
|
31
|
-
let(:config) { {} }
|
32
|
-
|
33
|
-
it "uses the default one when unspecificied" do
|
34
|
-
expect(client.authenticated_connection.adapter).to eq Faraday::Adapter::NetHttp
|
35
|
-
expect(client.unauthenticated_connection.adapter).to eq Faraday::Adapter::NetHttp
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
context "when set to an unkown adapter" do
|
40
|
-
let(:config) { {faraday_adapter: :yo} }
|
41
|
-
|
42
|
-
it "uses the default one when unspecificied" do
|
43
|
-
expect { client.authenticated_connection.adapter }.to raise_error(Faraday::Error)
|
44
|
-
expect { client.unauthenticated_connection.adapter }.to raise_error(Faraday::Error)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
context "when set to a valid adapter" do
|
49
|
-
let(:config) { {faraday_adapter: :test} }
|
50
|
-
|
51
|
-
it "uses the default one when unspecificied" do
|
52
|
-
expect(client.authenticated_connection.adapter).to eq Faraday::Adapter::Test
|
53
|
-
expect(client.unauthenticated_connection.adapter).to eq Faraday::Adapter::Test
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
RSpec.describe Scalingo::CoreClient do
|
4
|
-
subject { described_class.new }
|
5
|
-
|
6
|
-
describe "#database_region" do
|
7
|
-
it "forwards call to the specified region" do
|
8
|
-
allow(subject).to receive("db_api_osc_secnum_fr1")
|
9
|
-
|
10
|
-
subject.database_region("db_api_osc_secnum_fr1")
|
11
|
-
|
12
|
-
expect(subject).to have_received("db_api_osc_secnum_fr1")
|
13
|
-
end
|
14
|
-
|
15
|
-
it "forwards call to default db_api region" do
|
16
|
-
allow(subject).to receive("db_api_#{subject.config.default_region}")
|
17
|
-
|
18
|
-
subject.database_region
|
19
|
-
|
20
|
-
expect(subject).to have_received("db_api_#{subject.config.default_region}")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|