boletosimples 0.6.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  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 -20
  7. data/Gemfile +2 -0
  8. data/README.md +12 -54
  9. data/Rakefile +3 -1
  10. data/boletosimples.gemspec +14 -11
  11. data/lib/boletosimples.rb +4 -6
  12. data/lib/boletosimples/configuration.rb +14 -25
  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 +3 -1
  21. data/lib/boletosimples/resources/bank_billet_payment.rb +3 -1
  22. data/lib/boletosimples/resources/bank_billet_remittance.rb +3 -1
  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 +5 -3
  26. data/lib/boletosimples/resources/customer_subscription.rb +3 -10
  27. data/lib/boletosimples/resources/customer_subscription_import.rb +5 -3
  28. data/lib/boletosimples/resources/discharge.rb +4 -11
  29. data/lib/boletosimples/resources/email_delivery.rb +3 -1
  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 -101
  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 +7 -12
  43. data/spec/boletosimples/resources/bank_billet_payment_spec.rb +7 -12
  44. data/spec/boletosimples/resources/bank_billet_remittance_spec.rb +7 -12
  45. data/spec/boletosimples/resources/bank_billet_spec.rb +56 -42
  46. data/spec/boletosimples/resources/customer_import_spec.rb +41 -30
  47. data/spec/boletosimples/resources/customer_spec.rb +52 -39
  48. data/spec/boletosimples/resources/customer_subscription_import_spec.rb +41 -30
  49. data/spec/boletosimples/resources/customer_subscription_spec.rb +61 -33
  50. data/spec/boletosimples/resources/discharge_spec.rb +64 -11
  51. data/spec/boletosimples/resources/email_delivery_spec.rb +6 -11
  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/discharge.RET +3 -0
  60. data/spec/fixtures/vcr_cassettes/last_request/bank_billets.yml +536 -88
  61. data/spec/fixtures/vcr_cassettes/resources/bank_billet/all.yml +537 -91
  62. data/spec/fixtures/vcr_cassettes/resources/bank_billet/cancel/success.yml +34 -92
  63. data/spec/fixtures/vcr_cassettes/resources/bank_billet/create/invalid_params.yml +32 -20
  64. data/spec/fixtures/vcr_cassettes/resources/bank_billet/create/invalid_root.yml +28 -17
  65. data/spec/fixtures/vcr_cassettes/resources/bank_billet/create/valid.yml +43 -27
  66. data/spec/fixtures/vcr_cassettes/resources/bank_billet/duplicate/success.yml +83 -0
  67. data/spec/fixtures/vcr_cassettes/resources/bank_billet/find.yml +51 -27
  68. data/spec/fixtures/vcr_cassettes/resources/bank_billet_account/all.yml +131 -20
  69. data/spec/fixtures/vcr_cassettes/resources/bank_billet_account/create/invalid_params.yml +34 -20
  70. data/spec/fixtures/vcr_cassettes/resources/bank_billet_account/create/invalid_root.yml +30 -19
  71. data/spec/fixtures/vcr_cassettes/resources/bank_billet_account/create/valid.yml +41 -21
  72. data/spec/fixtures/vcr_cassettes/resources/bank_billet_account/find.yml +38 -18
  73. data/spec/fixtures/vcr_cassettes/resources/bank_billet_discharge/all.yml +66 -47
  74. data/spec/fixtures/vcr_cassettes/resources/bank_billet_payment/all.yml +44 -42
  75. data/spec/fixtures/vcr_cassettes/resources/bank_billet_remittance/all.yml +95 -48
  76. data/spec/fixtures/vcr_cassettes/resources/customer/all.yml +79 -32
  77. data/spec/fixtures/vcr_cassettes/resources/customer/create/invalid_params.yml +30 -17
  78. data/spec/fixtures/vcr_cassettes/resources/customer/create/invalid_root.yml +28 -17
  79. data/spec/fixtures/vcr_cassettes/resources/customer/create/valid.yml +33 -21
  80. data/spec/fixtures/vcr_cassettes/resources/customer/find.yml +33 -19
  81. data/spec/fixtures/vcr_cassettes/resources/customer_import/all.yml +43 -60
  82. data/spec/fixtures/vcr_cassettes/resources/customer_import/create/invalid_params.yml +37 -51
  83. data/spec/fixtures/vcr_cassettes/resources/customer_import/create/invalid_root.yml +38 -52
  84. data/spec/fixtures/vcr_cassettes/resources/customer_import/create/valid.yml +43 -68
  85. data/spec/fixtures/vcr_cassettes/resources/customer_import/find.yml +40 -54
  86. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/all.yml +102 -52
  87. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/create/invalid_params.yml +40 -50
  88. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/create/invalid_root.yml +36 -48
  89. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/create/valid.yml +48 -53
  90. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/find.yml +44 -50
  91. data/spec/fixtures/vcr_cassettes/resources/customer_subscription/next_charge.yml +45 -133
  92. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/all.yml +44 -55
  93. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/create/invalid_params.yml +37 -52
  94. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/create/invalid_root.yml +39 -53
  95. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/create/valid.yml +43 -70
  96. data/spec/fixtures/vcr_cassettes/resources/customer_subscription_import/find.yml +40 -55
  97. data/spec/fixtures/vcr_cassettes/resources/discharge/all.yml +64 -33
  98. data/spec/fixtures/vcr_cassettes/resources/discharge/create/invalid_params.yml +70 -0
  99. data/spec/fixtures/vcr_cassettes/resources/discharge/create/invalid_root.yml +69 -0
  100. data/spec/fixtures/vcr_cassettes/resources/discharge/create/valid.yml +84 -0
  101. data/spec/fixtures/vcr_cassettes/resources/discharge/find.yml +71 -0
  102. data/spec/fixtures/vcr_cassettes/resources/email_delivery/all.yml +40 -43
  103. data/spec/fixtures/vcr_cassettes/resources/event/all.yml +490 -166
  104. data/spec/fixtures/vcr_cassettes/resources/installment/all.yml +418 -52
  105. data/spec/fixtures/vcr_cassettes/resources/installment/create/invalid_params.yml +41 -52
  106. data/spec/fixtures/vcr_cassettes/resources/installment/create/invalid_root.yml +36 -48
  107. data/spec/fixtures/vcr_cassettes/resources/installment/create/valid.yml +48 -53
  108. data/spec/fixtures/vcr_cassettes/resources/installment/find.yml +44 -52
  109. data/spec/fixtures/vcr_cassettes/resources/remittance/all.yml +53 -33
  110. data/spec/fixtures/vcr_cassettes/resources/sns_delivery/all.yml +73 -0
  111. data/spec/fixtures/vcr_cassettes/resources/transaction/all.yml +34 -22
  112. data/spec/fixtures/vcr_cassettes/resources/web_hook/all.yml +42 -33
  113. data/spec/fixtures/vcr_cassettes/resources/webhook_delivery/all.yml +1232 -54
  114. data/spec/spec_helper.rb +3 -20
  115. data/spec/support/stub_env.rb +7 -0
  116. data/spec/support/vcr.rb +3 -4
  117. metadata +87 -52
  118. data/.coveralls.yml +0 -2
  119. data/.travis.yml +0 -46
  120. data/gemfiles/rails_42.gemfile +0 -8
  121. data/gemfiles/rails_50.gemfile +0 -8
  122. data/gemfiles/rails_51.gemfile +0 -8
  123. data/gemfiles/rails_52.gemfile +0 -9
  124. data/lib/boletosimples/extra.rb +0 -8
  125. data/lib/boletosimples/resources/partner/user.rb +0 -7
  126. data/lib/oauth2_patch.rb +0 -24
  127. data/spec/boletosimples/extra_spec.rb +0 -31
  128. data/spec/boletosimples/resources/partner/user_spec.rb +0 -19
  129. data/spec/fixtures/vcr_cassettes/configuration/client_credentials/invalid.yml +0 -64
  130. data/spec/fixtures/vcr_cassettes/configuration/client_credentials/valid.yml +0 -56
  131. data/spec/fixtures/vcr_cassettes/extra/userinfo/authenticated.yml +0 -58
  132. data/spec/fixtures/vcr_cassettes/extra/userinfo/not_authenticated.yml +0 -54
  133. data/spec/fixtures/vcr_cassettes/last_request/userinfo.yml +0 -58
  134. data/spec/fixtures/vcr_cassettes/resources/bank_billet/cancel/failure.yml +0 -118
  135. data/spec/fixtures/vcr_cassettes/resources/partner/user/create.yml +0 -60
  136. 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
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class BankBilletDischarge < 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 BankBilletPayment < 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 BankBilletRemittance < BaseModel
3
5
  end
4
- 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
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class CustomerImport < BaseModel
3
- collection_path "imports/customers"
4
- resource_path "imports/customers/:id"
5
+ collection_path 'imports/customers'
6
+ resource_path 'imports/customers/:id'
5
7
  end
6
- 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_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
7
  end
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class CustomerSubscriptionImport < BaseModel
3
- collection_path "imports/customer_subscriptions"
4
- resource_path "imports/customer_subscriptions/:id"
5
+ collection_path 'imports/customer_subscriptions'
6
+ resource_path 'imports/customer_subscriptions/:id'
5
7
  end
6
- 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
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BoletoSimples
2
4
  class EmailDelivery < 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 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.6.0'
4
+ VERSION = '1.0.1'
3
5
  end
@@ -1,102 +1,72 @@
1
- # encoding: UTF-8
2
- require 'spec_helper'
1
+ # # frozen_string_literal: true
3
2
 
4
- RSpec.describe BoletoSimples::Configuration do
5
- before {
6
- @last_env = {}
7
- @last_env['BOLETOSIMPLES_ENV'] = ENV['BOLETOSIMPLES_ENV']
8
- @last_env['BOLETOSIMPLES_APP_ID'] = ENV['BOLETOSIMPLES_APP_ID']
9
- @last_env['BOLETOSIMPLES_APP_SECRET'] = ENV['BOLETOSIMPLES_APP_SECRET']
10
- @last_env['BOLETOSIMPLES_ACCESS_TOKEN'] = ENV['BOLETOSIMPLES_ACCESS_TOKEN']
11
- }
12
- after {
13
- ENV['BOLETOSIMPLES_ENV'] = @last_env['BOLETOSIMPLES_ENV']
14
- ENV['BOLETOSIMPLES_APP_ID'] = @last_env['BOLETOSIMPLES_APP_ID']
15
- ENV['BOLETOSIMPLES_APP_SECRET'] = @last_env['BOLETOSIMPLES_APP_SECRET']
16
- ENV['BOLETOSIMPLES_ACCESS_TOKEN'] = @last_env['BOLETOSIMPLES_ACCESS_TOKEN']
17
- }
18
- describe 'defaults' do
19
- before {
20
- ENV['BOLETOSIMPLES_ENV'] = nil
21
- ENV['BOLETOSIMPLES_APP_ID'] = nil
22
- ENV['BOLETOSIMPLES_APP_SECRET'] = nil
23
- ENV['BOLETOSIMPLES_ACCESS_TOKEN'] = nil
24
- }
25
- subject { BoletoSimples::Configuration.new }
26
- before { subject.setup_her}
27
- it { expect(subject.environment).to eq(:sandbox) }
28
- it { expect(subject.base_uri).to eq('https://sandbox.boletosimples.com.br/api/v1') }
29
- it { expect(subject.application_id).to be_nil }
30
- it { expect(subject.application_secret).to be_nil }
31
- it { expect(subject.access_token).to be_nil }
32
- it { expect(subject.cache).to be_nil }
33
- it { expect(subject).not_to be_access_token }
34
- end
35
- describe 'environment variables' do
36
- before {
37
- ENV['BOLETOSIMPLES_ENV'] = 'production'
38
- ENV['BOLETOSIMPLES_APP_ID'] = 'app-id'
39
- ENV['BOLETOSIMPLES_APP_SECRET'] = 'app-secret'
40
- ENV['BOLETOSIMPLES_ACCESS_TOKEN'] = 'access-token'
41
- }
42
- before { BoletoSimples.configure }
43
- subject { BoletoSimples.configuration }
44
- # subject { BoletoSimples::Configuration.new }
45
- it { expect(subject.environment).to eq(:production) }
46
- it { expect(subject.base_uri).to eq('https://boletosimples.com.br/api/v1') }
47
- it { expect(subject.application_id).to eq('app-id') }
48
- it { expect(subject.application_secret).to eq('app-secret') }
49
- it { expect(subject.access_token).to eq('access-token') }
50
- it { expect(subject).to be_access_token }
51
- it { expect(subject.user_agent).to eq("BoletoSimples Ruby Client v#{BoletoSimples::VERSION} (contato@boletosimples.com.br)") }
52
- describe 'cache' do
53
- it { expect(subject.cache).to be_nil }
54
- it { expect(Her::API.default_api.connection.builder.handlers).not_to include(Faraday::HttpCache) }
55
- end
56
- end
57
- describe 'configuration' do
58
- let(:cache_object) { double('Dalli') }
59
- before {
60
- BoletoSimples.configure do |c|
61
- c.environment = :production
62
- c.application_id = 'app-id'
63
- c.application_secret = 'app-secret'
64
- c.access_token = 'access-token'
65
- c.cache = cache_object
66
- c.user_agent = 'Meu agent'
67
- end
68
- }
69
- subject { BoletoSimples.configuration }
70
- it { expect(subject.environment).to eq(:production) }
71
- it { expect(subject.user_agent).to eq("Meu agent") }
72
- it { expect(subject.base_uri).to eq('https://boletosimples.com.br/api/v1') }
73
- it { expect(subject.application_id).to eq('app-id') }
74
- it { expect(subject.application_secret).to eq('app-secret') }
75
- it { expect(subject.access_token).to eq('access-token') }
76
- describe 'cache' do
77
- it { expect(subject.cache).to eq(cache_object) }
78
- it { expect(Her::API.default_api.connection.builder.handlers).to include(Faraday::HttpCache) }
79
- end
80
- describe 'client credentials' do
81
- context 'invalid credentials', vcr: { cassette_name: 'configuration/client_credentials/invalid'} do
82
- before {
83
- BoletoSimples.configure do |c|
84
- c.application_id = 'app-id'
85
- c.application_secret = 'app-secret'
86
- c.access_token = nil
87
- end
88
- }
89
- it { expect{subject.client_credentials}.to raise_error(BoletoSimples::ResponseError, "401 POST https://sandbox.boletosimples.com.br/api/v1/oauth2/token (invalid_client)") }
90
- end
91
- context 'valid credentials', vcr: { cassette_name: 'configuration/client_credentials/valid'} do
92
- # Before running this spec again, you need to set environment variable BOLETOSIMPLES_APP_ID and BOLETOSIMPLES_APP_SECRET
93
- before {
94
- BoletoSimples.configure do |c|
95
- c.access_token = nil
96
- end
97
- }
98
- it { expect(subject.client_credentials).to include(:access_token) }
99
- end
100
- end
101
- end
102
- 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