boletosimples 0.4.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ruby.yml +34 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +9 -0
  5. data/.ruby-version +1 -1
  6. data/CHANGELOG.md +6 -14
  7. data/Gemfile +2 -0
  8. data/README.md +12 -54
  9. data/Rakefile +10 -0
  10. data/boletosimples.gemspec +21 -17
  11. data/lib/boletosimples.rb +10 -6
  12. data/lib/boletosimples/configuration.rb +17 -32
  13. data/lib/boletosimples/last_request.rb +12 -9
  14. data/lib/boletosimples/middlewares/bearer.rb +12 -0
  15. data/lib/boletosimples/middlewares/last_request.rb +3 -1
  16. data/lib/boletosimples/middlewares/raise_error.rb +9 -2
  17. data/lib/boletosimples/middlewares/user_agent.rb +3 -1
  18. data/lib/boletosimples/resources/bank_billet.rb +5 -11
  19. data/lib/boletosimples/resources/bank_billet_account.rb +3 -1
  20. data/lib/boletosimples/resources/bank_billet_discharge.rb +6 -0
  21. data/lib/boletosimples/resources/bank_billet_payment.rb +6 -0
  22. data/lib/boletosimples/resources/bank_billet_remittance.rb +6 -0
  23. data/lib/boletosimples/resources/base_model.rb +3 -1
  24. data/lib/boletosimples/resources/customer.rb +3 -1
  25. data/lib/boletosimples/resources/customer_import.rb +8 -0
  26. data/lib/boletosimples/resources/customer_subscription.rb +4 -11
  27. data/lib/boletosimples/resources/customer_subscription_import.rb +8 -0
  28. data/lib/boletosimples/resources/discharge.rb +4 -11
  29. data/lib/boletosimples/resources/email_delivery.rb +6 -0
  30. data/lib/boletosimples/resources/event.rb +3 -1
  31. data/lib/boletosimples/resources/installment.rb +3 -1
  32. data/lib/boletosimples/resources/remittance.rb +3 -1
  33. data/lib/boletosimples/resources/sms_delivery.rb +6 -0
  34. data/lib/boletosimples/resources/transaction.rb +3 -1
  35. data/lib/boletosimples/resources/webhook.rb +3 -1
  36. data/lib/boletosimples/resources/webhook_delivery.rb +3 -1
  37. data/lib/boletosimples/response_error.rb +8 -3
  38. data/lib/boletosimples/version.rb +3 -1
  39. data/spec/boletosimples/configuration_spec.rb +71 -83
  40. data/spec/boletosimples/last_request_spec.rb +16 -28
  41. data/spec/boletosimples/resources/bank_billet_account_spec.rb +57 -33
  42. data/spec/boletosimples/resources/bank_billet_discharge_spec.rb +12 -0
  43. data/spec/boletosimples/resources/bank_billet_payment_spec.rb +12 -0
  44. data/spec/boletosimples/resources/bank_billet_remittance_spec.rb +12 -0
  45. data/spec/boletosimples/resources/bank_billet_spec.rb +56 -42
  46. data/spec/boletosimples/resources/customer_import_spec.rb +67 -0
  47. data/spec/boletosimples/resources/customer_spec.rb +52 -39
  48. data/spec/boletosimples/resources/customer_subscription_import_spec.rb +67 -0
  49. data/spec/boletosimples/resources/customer_subscription_spec.rb +64 -30
  50. data/spec/boletosimples/resources/discharge_spec.rb +64 -11
  51. data/spec/boletosimples/resources/email_delivery_spec.rb +12 -0
  52. data/spec/boletosimples/resources/event_spec.rb +7 -12
  53. data/spec/boletosimples/resources/installment_spec.rb +61 -32
  54. data/spec/boletosimples/resources/remittance_spec.rb +7 -12
  55. data/spec/boletosimples/resources/sms_delivery_spec.rb +12 -0
  56. data/spec/boletosimples/resources/transactions_spec.rb +7 -12
  57. data/spec/boletosimples/resources/webhook_delivery_spec.rb +7 -12
  58. data/spec/boletosimples/resources/webhook_spec.rb +7 -12
  59. data/spec/fixtures/customer_imports.csv +1 -0
  60. data/spec/fixtures/customer_subscription_imports.csv +1 -0
  61. data/spec/fixtures/discharge.RET +3 -0
  62. data/spec/fixtures/vcr_cassettes/last_request/bank_billets.yml +536 -88
  63. data/spec/fixtures/vcr_cassettes/resources/bank_billet/all.yml +537 -91
  64. data/spec/fixtures/vcr_cassettes/resources/bank_billet/cancel/success.yml +34 -92
  65. data/spec/fixtures/vcr_cassettes/resources/bank_billet/create/invalid_params.yml +32 -20
  66. data/spec/fixtures/vcr_cassettes/resources/bank_billet/create/invalid_root.yml +28 -17
  67. data/spec/fixtures/vcr_cassettes/resources/bank_billet/create/valid.yml +43 -27
  68. data/spec/fixtures/vcr_cassettes/resources/bank_billet/duplicate/success.yml +83 -0
  69. data/spec/fixtures/vcr_cassettes/resources/bank_billet/find.yml +51 -27
  70. data/spec/fixtures/vcr_cassettes/resources/bank_billet_account/all.yml +131 -20
  71. data/spec/fixtures/vcr_cassettes/resources/bank_billet_account/create/invalid_params.yml +34 -20
  72. data/spec/fixtures/vcr_cassettes/resources/bank_billet_account/create/invalid_root.yml +30 -19
  73. data/spec/fixtures/vcr_cassettes/resources/bank_billet_account/create/valid.yml +41 -21
  74. data/spec/fixtures/vcr_cassettes/resources/bank_billet_account/find.yml +38 -18
  75. data/spec/fixtures/vcr_cassettes/resources/bank_billet_discharge/all.yml +97 -0
  76. data/spec/fixtures/vcr_cassettes/resources/bank_billet_payment/all.yml +75 -0
  77. data/spec/fixtures/vcr_cassettes/resources/bank_billet_remittance/all.yml +126 -0
  78. data/spec/fixtures/vcr_cassettes/resources/customer/all.yml +79 -32
  79. data/spec/fixtures/vcr_cassettes/resources/customer/create/invalid_params.yml +30 -17
  80. data/spec/fixtures/vcr_cassettes/resources/customer/create/invalid_root.yml +28 -17
  81. data/spec/fixtures/vcr_cassettes/resources/customer/create/valid.yml +33 -21
  82. data/spec/fixtures/vcr_cassettes/resources/customer/find.yml +33 -19
  83. data/spec/fixtures/vcr_cassettes/resources/customer_import/all.yml +74 -0
  84. data/spec/fixtures/vcr_cassettes/resources/customer_import/create/invalid_params.yml +69 -0
  85. data/spec/fixtures/vcr_cassettes/resources/customer_import/create/invalid_root.yml +69 -0
  86. data/spec/fixtures/vcr_cassettes/resources/customer_import/create/valid.yml +76 -0
  87. data/spec/fixtures/vcr_cassettes/resources/customer_import/find.yml +71 -0
  88. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/all.yml +102 -52
  89. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/create/invalid_params.yml +40 -50
  90. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/create/invalid_root.yml +36 -48
  91. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/create/valid.yml +48 -53
  92. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/find.yml +44 -50
  93. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/next_charge.yml +77 -0
  94. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/all.yml +75 -0
  95. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/create/invalid_params.yml +69 -0
  96. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/create/invalid_root.yml +70 -0
  97. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/create/valid.yml +76 -0
  98. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/find.yml +71 -0
  99. data/spec/fixtures/vcr_cassettes/resources/discharge/all.yml +64 -33
  100. data/spec/fixtures/vcr_cassettes/resources/discharge/create/invalid_params.yml +70 -0
  101. data/spec/fixtures/vcr_cassettes/resources/discharge/create/invalid_root.yml +69 -0
  102. data/spec/fixtures/vcr_cassettes/resources/discharge/create/valid.yml +84 -0
  103. data/spec/fixtures/vcr_cassettes/resources/discharge/find.yml +71 -0
  104. data/spec/fixtures/vcr_cassettes/resources/email_delivery/all.yml +73 -0
  105. data/spec/fixtures/vcr_cassettes/resources/event/all.yml +490 -166
  106. data/spec/fixtures/vcr_cassettes/resources/installment/all.yml +418 -52
  107. data/spec/fixtures/vcr_cassettes/resources/installment/create/invalid_params.yml +41 -52
  108. data/spec/fixtures/vcr_cassettes/resources/installment/create/invalid_root.yml +36 -48
  109. data/spec/fixtures/vcr_cassettes/resources/installment/create/valid.yml +48 -53
  110. data/spec/fixtures/vcr_cassettes/resources/installment/find.yml +44 -52
  111. data/spec/fixtures/vcr_cassettes/resources/remittance/all.yml +53 -33
  112. data/spec/fixtures/vcr_cassettes/resources/sns_delivery/all.yml +73 -0
  113. data/spec/fixtures/vcr_cassettes/resources/transaction/all.yml +34 -22
  114. data/spec/fixtures/vcr_cassettes/resources/web_hook/all.yml +42 -33
  115. data/spec/fixtures/vcr_cassettes/resources/webhook_delivery/all.yml +1232 -54
  116. data/spec/spec_helper.rb +3 -20
  117. data/spec/support/stub_env.rb +7 -0
  118. data/spec/support/vcr.rb +3 -4
  119. metadata +181 -77
  120. data/.coveralls.yml +0 -2
  121. data/.ruby-gemset +0 -1
  122. data/.travis.yml +0 -11
  123. data/lib/boletosimples/extra.rb +0 -8
  124. data/lib/boletosimples/resources/partner/user.rb +0 -7
  125. data/lib/oauth2_patch.rb +0 -24
  126. data/spec/boletosimples/extra_spec.rb +0 -31
  127. data/spec/boletosimples/resources/partner/user_spec.rb +0 -19
  128. data/spec/fixtures/vcr_cassettes/configuration/client_credentials/invalid.yml +0 -64
  129. data/spec/fixtures/vcr_cassettes/configuration/client_credentials/valid.yml +0 -56
  130. data/spec/fixtures/vcr_cassettes/extra/userinfo/authenticated.yml +0 -58
  131. data/spec/fixtures/vcr_cassettes/extra/userinfo/not_authenticated.yml +0 -54
  132. data/spec/fixtures/vcr_cassettes/last_request/userinfo.yml +0 -58
  133. data/spec/fixtures/vcr_cassettes/resources/bank_billet/cancel/failure.yml +0 -118
  134. data/spec/fixtures/vcr_cassettes/resources/partner/user/create.yml +0 -60
  135. data/spec/spec.opts +0 -8
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BoletoSimples
4
+ module Middleware
5
+ class Bearer < Faraday::Middleware
6
+ def call(env)
7
+ env[:request_headers]['Authorization'] = "Bearer #{BoletoSimples.configuration.api_token}"
8
+ @app.call(env)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  module Middleware
3
5
  class LastRequest < Faraday::Response::Middleware
@@ -6,4 +8,4 @@ module BoletoSimples
6
8
  end
7
9
  end
8
10
  end
9
- end
11
+ end
@@ -1,11 +1,18 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  module Middleware
3
5
  class RaiseError < Faraday::Response::Middleware
4
6
  def on_complete(env)
5
7
  status = env[:status].to_i
8
+ return if status == 422
9
+
6
10
  klass = BoletoSimples::ResponseError
7
- raise klass.new(env) if (400..599).include?(status) and env[:body][:data][:error]
11
+ if (400..599).cover?(status) && env[:body][:errors]
12
+ puts env.inspect
13
+ raise klass, env
14
+ end
8
15
  end
9
16
  end
10
17
  end
11
- end
18
+ end
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  module Middleware
3
5
  class UserAgent < Faraday::Middleware
4
6
  def call(env)
5
- env[:request_headers]["User-Agent"] = BoletoSimples.configuration.user_agent
7
+ env[:request_headers]['User-Agent'] = BoletoSimples.configuration.user_agent
6
8
  @app.call(env)
7
9
  end
8
10
  end
@@ -1,14 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class BankBillet < BaseModel
3
-
4
- def cancel
5
- self.class.request(:_method => :put, :_path => self.class.build_request_path('bank_billets/:id/cancel', {self.class.primary_key => id})) do |parsed_data, response|
6
- assign_attributes(self.class.parse(parsed_data[:data])) if parsed_data[:data].any?
7
- @metadata = parsed_data[:metadata]
8
- @response_errors = parsed_data[:errors]
9
- @response = response
10
- end
11
- return @response.success?
12
- end
5
+ custom_put :pay, :cancel
6
+ custom_post :duplicate
13
7
  end
14
- end
8
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class BankBilletAccount < BaseModel
3
5
  end
4
- end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BoletoSimples
4
+ class BankBilletDischarge < BaseModel
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BoletoSimples
4
+ class BankBilletPayment < BaseModel
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BoletoSimples
4
+ class BankBilletRemittance < BaseModel
5
+ end
6
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class BaseModel
3
5
  include Her::Model
@@ -5,4 +7,4 @@ module BoletoSimples
5
7
  parse_root_in_json true
6
8
  include_root_in_json true
7
9
  end
8
- end
10
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class Customer < BaseModel
3
5
  end
4
- end
6
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BoletoSimples
4
+ class CustomerImport < BaseModel
5
+ collection_path 'imports/customers'
6
+ resource_path 'imports/customers/:id'
7
+ end
8
+ end
@@ -1,14 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class CustomerSubscription < BaseModel
3
-
4
- def next_charge
5
- self.class.request(:_method => :post, :_path => self.class.build_request_path('customer_subscription_subscriptions/:id/next_charge', {self.class.primary_key => id})) do |parsed_data, response|
6
- assign_attributes(self.class.parse(parsed_data[:data])) if parsed_data[:data].any?
7
- @metadata = parsed_data[:metadata]
8
- @response_errors = parsed_data[:errors]
9
- @response = response
10
- end
11
- return @response.success?
12
- end
5
+ custom_post :next_charge
13
6
  end
14
- end
7
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BoletoSimples
4
+ class CustomerSubscriptionImport < BaseModel
5
+ collection_path 'imports/customer_subscriptions'
6
+ resource_path 'imports/customer_subscriptions/:id'
7
+ end
8
+ end
@@ -1,14 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class Discharge < BaseModel
3
-
4
- def pay_off
5
- self.class.request(:_method => :put, :_path => self.class.build_request_path('discharges/:id/pay_off', {self.class.primary_key => id})) do |parsed_data, response|
6
- assign_attributes(self.class.parse(parsed_data[:data])) if parsed_data[:data].any?
7
- @metadata = parsed_data[:metadata]
8
- @response_errors = parsed_data[:errors]
9
- @response = response
10
- end
11
- return @response.success?
12
- end
5
+ custom_put :pay_off
13
6
  end
14
- end
7
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BoletoSimples
4
+ class EmailDelivery < BaseModel
5
+ end
6
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class Event < BaseModel
3
5
  end
4
- end
6
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class Installment < BaseModel
3
5
  end
4
- end
6
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class Remittance < BaseModel
3
5
  end
4
- end
6
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BoletoSimples
4
+ class SmsDelivery < BaseModel
5
+ end
6
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class Transaction < BaseModel
3
5
  end
4
- end
6
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class Webhook < BaseModel
3
5
  end
4
- end
6
+ end
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class WebhookDelivery < BaseModel
3
5
  end
4
- end
6
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  # BoletoSimples::ResponseError
3
5
  # Exception that gets raised if the response is an error (4xx or 5xx)
@@ -29,15 +31,18 @@ module BoletoSimples
29
31
  @status = response[:status].to_i
30
32
  @method = response[:method].to_s.upcase
31
33
  @url = response[:url]
32
- @error_message = @body[:error]
34
+
35
+ errors = response[:body][:errors]
36
+ @error_message = errors.first[:title] unless errors.blank?
33
37
 
34
38
  super
35
39
  end
36
40
 
37
41
  def to_s
38
- msg = "#{status} #{method} #{url}"
42
+ msg = ''
43
+ msg += "#{status} #{method} #{url}"
39
44
  msg << " (#{error_message})" unless error_message.blank?
40
45
  msg
41
46
  end
42
47
  end
43
- end
48
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
- VERSION = '0.4.0'
4
+ VERSION = '1.0.1'
3
5
  end
@@ -1,84 +1,72 @@
1
- # encoding: UTF-8
2
- require 'spec_helper'
1
+ # # frozen_string_literal: true
3
2
 
4
- RSpec.describe BoletoSimples::Configuration do
5
- describe 'defaults' do
6
- before {
7
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_ENV').and_return(nil)
8
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_APP_ID').and_return(nil)
9
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_APP_SECRET').and_return(nil)
10
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_ACCESS_TOKEN').and_return(nil)
11
- }
12
- subject { BoletoSimples::Configuration.new }
13
- it { expect(subject.environment).to eq(:sandbox) }
14
- it { expect(subject.base_uri).to eq('https://sandbox.boletosimples.com.br/api/v1') }
15
- it { expect(subject.application_id).to be_nil }
16
- it { expect(subject.application_secret).to be_nil }
17
- it { expect(subject.access_token).to be_nil }
18
- it { expect(subject.cache).to be_nil }
19
- it { expect(subject).not_to be_access_token }
20
- end
21
- describe 'environment variables' do
22
- before {
23
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_ENV').and_return('production')
24
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_APP_ID').and_return('app-id')
25
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_APP_SECRET').and_return('app-secret')
26
- allow(ENV).to receive(:[]).with('BOLETOSIMPLES_ACCESS_TOKEN').and_return('access-token')
27
- }
28
- subject { BoletoSimples::Configuration.new }
29
- it { expect(subject.environment).to eq(:production) }
30
- it { expect(subject.base_uri).to eq('https://boletosimples.com.br/api/v1') }
31
- it { expect(subject.application_id).to eq('app-id') }
32
- it { expect(subject.application_secret).to eq('app-secret') }
33
- it { expect(subject.access_token).to eq('access-token') }
34
- it { expect(subject).to be_access_token }
35
- describe 'cache' do
36
- it { expect(subject.cache).to be_nil }
37
- it { expect(Her::API.default_api.connection.builder.handlers).not_to include(Faraday::HttpCache) }
38
- end
39
- end
40
- describe 'configuration' do
41
- let(:cache_object) { double('Dalli') }
42
- before {
43
- BoletoSimples.configure do |c|
44
- c.environment = :production
45
- c.application_id = 'app-id'
46
- c.application_secret = 'app-secret'
47
- c.access_token = 'access-token'
48
- c.cache = cache_object
49
- end
50
- }
51
- subject { BoletoSimples.configuration }
52
- it { expect(subject.environment).to eq(:production) }
53
- it { expect(subject.user_agent).to eq("BoletoSimples Ruby Client v#{BoletoSimples::VERSION} (contato@boletosimples.com.br)") }
54
- it { expect(subject.base_uri).to eq('https://boletosimples.com.br/api/v1') }
55
- it { expect(subject.application_id).to eq('app-id') }
56
- it { expect(subject.application_secret).to eq('app-secret') }
57
- it { expect(subject.access_token).to eq('access-token') }
58
- describe 'cache' do
59
- it { expect(subject.cache).to eq(cache_object) }
60
- it { expect(Her::API.default_api.connection.builder.handlers).to include(Faraday::HttpCache) }
61
- end
62
- describe 'client credentials' do
63
- context 'invalid credentials', vcr: { cassette_name: 'configuration/client_credentials/invalid'} do
64
- before {
65
- BoletoSimples.configure do |c|
66
- c.application_id = 'app-id'
67
- c.application_secret = 'app-secret'
68
- c.access_token = nil
69
- end
70
- }
71
- it { expect{subject.client_credentials}.to raise_error(BoletoSimples::ResponseError, "401 POST https://sandbox.boletosimples.com.br/api/v1/oauth2/token (invalid_client)") }
72
- end
73
- context 'valid credentials', vcr: { cassette_name: 'configuration/client_credentials/valid'} do
74
- # Before running this spec again, you need to set environment variable BOLETOSIMPLES_APP_ID and BOLETOSIMPLES_APP_SECRET
75
- before {
76
- BoletoSimples.configure do |c|
77
- c.access_token = nil
78
- end
79
- }
80
- it { expect(subject.client_credentials).to include(:access_token) }
81
- end
82
- end
83
- end
84
- end
3
+ # require 'spec_helper'
4
+
5
+ # RSpec.describe BoletoSimples::Configuration do
6
+ # describe 'defaults' do
7
+ # subject { described_class.new }
8
+
9
+ # before do
10
+ # stub_env('BOLETOSIMPLES_ENV', nil)
11
+ # stub_env('BOLETOSIMPLES_USER_AGENT', nil)
12
+ # subject.setup_her
13
+ # end
14
+
15
+ # it do
16
+ # expect(subject.environment).to eq(:sandbox)
17
+ # expect(subject.base_uri).to eq('https://sandbox.boletosimples.com.br/api/v1')
18
+ # expect(subject.cache).to be_nil
19
+ # expect(subject.user_agent).to be_nil
20
+ # end
21
+ # end
22
+
23
+ # describe 'environment variables' do
24
+ # subject { BoletoSimples.configuration }
25
+
26
+ # before do
27
+ # stub_env('BOLETOSIMPLES_ENV', 'production')
28
+ # stub_env('BOLETOSIMPLES_USER_AGENT', 'email@minhaempresa.com.br')
29
+ # BoletoSimples.configure
30
+ # end
31
+
32
+ # it do
33
+ # expect(subject.environment).to eq(:production)
34
+ # expect(subject.base_uri).to eq('https://boletosimples.com.br/api/v1')
35
+ # expect(subject.user_agent).to eq('email@minhaempresa.com.br')
36
+ # end
37
+
38
+ # describe 'cache' do
39
+ # it do
40
+ # expect(subject.cache).to be_nil
41
+ # expect(Her::API.default_api.connection.builder.handlers).not_to include(Faraday::HttpCache)
42
+ # end
43
+ # end
44
+ # end
45
+
46
+ # describe 'configuration' do
47
+ # subject { BoletoSimples.configuration }
48
+
49
+ # let(:cache_object) { double('Dalli') }
50
+
51
+ # before do
52
+ # BoletoSimples.configure do |c|
53
+ # c.environment = :production
54
+ # c.cache = cache_object
55
+ # c.user_agent = 'Meu agent'
56
+ # end
57
+ # end
58
+
59
+ # it do
60
+ # expect(subject.environment).to eq(:production)
61
+ # expect(subject.user_agent).to eq('Meu agent')
62
+ # expect(subject.base_uri).to eq('https://boletosimples.com.br/api/v1')
63
+ # end
64
+
65
+ # describe 'cache' do
66
+ # it do
67
+ # expect(subject.cache).to eq(cache_object)
68
+ # expect(Her::API.default_api.connection.builder.handlers).to include(Faraday::HttpCache)
69
+ # end
70
+ # end
71
+ # end
72
+ # end