boletosimples 0.4.0 → 1.0.1

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 (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