bigid_bgcheck 0.1.2 → 0.3.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f078e2eba71cbc4578ee9a4c1ceec003435b4f3331ec52924c9b2a30eb873b5
4
- data.tar.gz: bada7c2db0bbc0a3cbb2f7470a3f1d9d9a366a9f150cb95313e3f49aadc66f75
3
+ metadata.gz: e3c762eb563f762b7422597ffb3854fc268a4d90737b31aedd8bf3eebb629987
4
+ data.tar.gz: f16a28500e579ca49a5f4b00e5dd632e005470bd3023a11585ec8633d93d7435
5
5
  SHA512:
6
- metadata.gz: 53249dd591e3b909a88fb5bdc0b3a70e89b56364c5ba86945cf6620f842e6c5cdf750bb07b75bca4c29ea24106a384e9fab06b43873590f0770504325549ae67
7
- data.tar.gz: 6ddbe14002b9525f7b447cbfa4982eea4dd83458b0c6457344711acd7c72cf95ac971e31d8793a007b17d496d5ab5186a27337f13f5fe1fb30361c2cdb1a1c67
6
+ metadata.gz: b434e3f68d691114a83d6b27b9932b6e3112b41fb49748e4a6d387a475c169c66c2e47697138590198e9a503e8f8337334b05b237d38a86e7d9267c5ef362e97
7
+ data.tar.gz: 8a65f2b886f4603ea8f0bd4de448aad82b6c640ad98088a19c93f02d8d3ab8f4684e5b385ede0021f3a88496a55ee99b4d47b392b895ddbf3d7e470068d646ae
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # CHANGELOG for bigid_bgcheck
2
2
 
3
+ ## v0.3.0
4
+
5
+ * Bump "bigid_auth" version from v0.1.0 to v0.2.0
6
+
7
+ ## v0.2.0
8
+
9
+ Features
10
+
11
+ * Add fields to service return: "raw_data", "score_details", "related_score_details" and "raw_response" (the complete json file)
12
+
13
+ ## v0.1.3
14
+
15
+ * Fix a problem with the locale initialization in Rails projects
16
+
3
17
  ## v0.1.2
4
18
 
5
19
  * Move auth service to an external package
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2021 Danilo Carolino
1
+ Copyright (c) 2021 Quasar Flash
2
2
 
3
3
  MIT LICENSE
4
4
 
data/README.md CHANGED
@@ -2,7 +2,8 @@ BigId Background Check's Library for Ruby
2
2
  ==============
3
3
 
4
4
  [![Gem Version](https://badge.fury.io/rb/bigid_bgcheck.svg)](https://badge.fury.io/rb/bigid_bgcheck)
5
- [![Build Status](https://travis-ci.com/Quasar-Flash/bigid-bgcheck-ruby.svg?branch=master)](https://travis-ci.com/Quasar-Flash/bigid-bgcheck-ruby)
5
+ [![Build Status](https://travis-ci.com/Quasar-Flash/bigid_bgcheck.svg?branch=master)](https://travis-ci.com/Quasar-Flash/bigid_bgcheck)
6
+ [![bigid_bgcheck](https://github.com/Quasar-Flash/bigid_bgcheck/actions/workflows/ruby.yml/badge.svg)](https://github.com/Quasar-Flash/bigid_bgcheck/actions/workflows/ruby.yml)
6
7
 
7
8
  Requirements
8
9
  -----------------
@@ -18,66 +19,79 @@ Included Modules
18
19
  Global Installation
19
20
  -----------------
20
21
 
21
- gem install bigid_bgcheck
22
+ ```sh
23
+ gem install bigid_bgcheck
24
+ ```
22
25
 
23
26
  Installation for Rails
24
27
  -----------------
25
28
 
26
- # Add to the Gemfile
27
- gem 'bigid_bgcheck', '~> 0.1.0'
29
+ ```ruby
30
+ # Add to the Gemfile
31
+ gem "bigid_bgcheck", "~> 0.3"
32
+ gem "bigid_bgcheck", github: "Quasar-Flash/bigid_bgcheck"
33
+ ```
28
34
 
29
35
  Setting the BigID credentials
30
36
  -----------------
31
37
 
32
- # Set the env variables
33
- ENV['BIGID_USERNAME'] = 'your_username'
34
- ENV['BIGID_PASSWORD'] = 'your_password'
38
+ ```ruby
39
+ # Set the env variables
40
+ ENV["BIGID_USERNAME"] = "your_username"
41
+ ENV["BIGID_PASSWORD"] = "your_password"
42
+ ```
35
43
 
36
44
  Setting the BigID credentials - Rails Project
37
45
  -----------------
38
46
 
39
47
  Create the config/initializers/bigid.rb file and define:
40
48
 
41
- # Set the env variables
42
- Bigid.configure do |config|
43
- config.username = 'your_username'
44
- config.password = 'your_password'
45
- end
49
+ ```ruby
50
+ # Set the env variables
51
+ Bigid.configure do |config|
52
+ config.username = "your_username"
53
+ config.password = "your_password"
54
+ end
55
+ ```
46
56
 
47
57
  Applying a background check
48
58
  -----------------
49
59
 
50
- require 'bigid_bgcheck'
60
+ ```ruby
61
+ require "bigid_bgcheck"
51
62
 
52
- Bigid::Bgcheck::Request.new.call(
53
- document: '000.000.000-00',
54
- document_type: 'CPF',
55
- group: 'Default'
56
- )
63
+ Bigid::Bgcheck::Request.new.call(
64
+ document: "000.000.000-00",
65
+ document_type: "CPF",
66
+ group: "Default"
67
+ )
68
+ ```
57
69
 
58
70
  Result Example
59
71
  -----------------
60
72
 
61
- #<Bigid::Bgcheck::Result:0x0000560fef3c1068
62
- @approved=false,
63
- @ticket_id="00000000000000000",
64
- @code=-1100,
65
- @message="Not Approved",
66
- @score=0,
67
- @limit_score=0.0>
73
+ ```ruby
74
+ #<Bigid::Bgcheck::Result:0x0000560fef3c1068
75
+ @approved=false,
76
+ @ticket_id="00000000000000000",
77
+ @code=-1100,
78
+ @message="Not Approved",
79
+ @score=0,
80
+ @limit_score=0.0>
81
+ ```
68
82
 
69
83
  Problems?
70
84
  -----------------
71
85
 
72
86
  **Please do not directly email any committers with questions or problems.** A community is best served when discussions are held in public.
73
87
 
74
- Searching the [issues](https://github.com/Quasar-Flash/bigid-bgcheck-ruby/issues) for your problem is also a good idea.
88
+ Searching the [issues](https://github.com/Quasar-Flash/bigid_bgcheck/issues) for your problem is also a good idea.
75
89
 
76
90
  Contributing
77
91
  -----------------
78
92
 
79
- - Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet;
80
- - Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it;
93
+ - Check out the latest master to make sure the feature hasn"t been implemented or the bug hasn't been fixed yet;
94
+ - Check out the issue tracker to make sure someone already hasn"t requested it and/or contributed it;
81
95
  - Fork the project;
82
96
  - Start a feature/bugfix branch;
83
97
  - Commit and push until you are happy with your contribution;
@@ -87,7 +101,7 @@ Contributing
87
101
  License
88
102
  -----------------
89
103
 
90
- Please see [LICENSE](https://github.com/Quasar-Flash/bigid-bgcheck-ruby/blob/master/LICENSE.txt) for licensing details.
104
+ Please see [LICENSE](https://github.com/Quasar-Flash/bigid_bgcheck/blob/master/LICENSE.txt) for licensing details.
91
105
 
92
106
  Authors
93
107
  -----------------
data/Rakefile CHANGED
@@ -45,4 +45,4 @@ rescue LoadError
45
45
  # no rspec available
46
46
  end
47
47
 
48
- task default: %i[rubocop ]
48
+ task default: %i[rubocop spec]
@@ -47,11 +47,15 @@ module Bigid
47
47
 
48
48
  Bigid::Bgcheck::Result.new(
49
49
  approved: ResultCode.approved?(body["ResultCode"]),
50
- ticket_id: body["TicketId"],
51
50
  code: body["ResultCode"],
51
+ score_details: body["ScoreDetails"],
52
+ limit_score: body["LimitScore"],
52
53
  message: body["ResultMessage"],
54
+ raw_data: body["RawData"],
55
+ raw_response: body.to_json,
56
+ related_score_details: body["RelatedScoreDetails"],
53
57
  score: body["Score"],
54
- limit_score: body["LimitScore"]
58
+ ticket_id: body["TicketId"]
55
59
  )
56
60
  end
57
61
  end
@@ -3,15 +3,21 @@
3
3
  module Bigid
4
4
  module Bgcheck
5
5
  class Result
6
- attr_accessor :approved, :ticket_id, :code, :message, :score, :limit_score
6
+ attr_accessor :approved, :code, :score_details, :limit_score, :message, :raw_data,
7
+ :raw_response, :related_score_details, :score, :ticket_id
7
8
 
8
- def initialize(approved:, ticket_id:, code:, message:, score:, limit_score:)
9
- @approved = approved
10
- @ticket_id = ticket_id
11
- @code = code
12
- @message = message
13
- @score = score
14
- @limit_score = limit_score
9
+ def initialize(approved:, code:, score_details:, limit_score:, message:, raw_data:, raw_response:,
10
+ related_score_details:, score:, ticket_id:)
11
+ @approved = approved
12
+ @code = code
13
+ @score_details = score_details
14
+ @limit_score = limit_score
15
+ @message = message
16
+ @raw_data = raw_data
17
+ @raw_response = raw_response
18
+ @related_score_details = related_score_details
19
+ @score = score
20
+ @ticket_id = ticket_id
15
21
  end
16
22
  end
17
23
  end
@@ -9,6 +9,6 @@ module Bigid
9
9
  # Major - Incremented for incompatible changes with previous release (or big enough new features)
10
10
  # Minor - Incremented for new backwards-compatible features + deprecations
11
11
  # Patch - Incremented for backwards-compatible bug fixes
12
- VERSION = "0.1.2"
12
+ VERSION = "0.3.0.2"
13
13
  end
14
14
  end
data/lib/bigid_bgcheck.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "faraday"
4
3
  require "i18n"
5
4
  require "json"
5
+ require "cpf_cnpj"
6
6
 
7
7
  require "bigid_auth"
8
8
 
@@ -22,30 +22,28 @@ require "bigid/bgcheck/result"
22
22
  require "bigid/bgcheck/result_code"
23
23
  require "bigid/bgcheck/request"
24
24
 
25
- module Bigid
26
- module Bgcheck
27
- SRV_ENDPOINT = "backgroundcheck"
25
+ I18n.load_path += Dir[File.join(__dir__, "locales", "**/*.yml")]
26
+ I18n.reload! if I18n.backend.initialized?
28
27
 
29
- class << self
30
- attr_writer :configuration
28
+ module Bigid
29
+ class << self
30
+ attr_writer :configuration
31
31
 
32
- def configuration
33
- @configuration ||= Configuration.new
34
- end
32
+ def configuration
33
+ @configuration ||= Configuration.new
35
34
  end
35
+ end
36
36
 
37
- def self.configure
38
- self.configuration ||= Configuration.new
37
+ def self.configure
38
+ self.configuration ||= Configuration.new
39
39
 
40
- yield(configuration)
41
- end
40
+ yield(configuration)
41
+ end
42
42
 
43
- class Configuration
44
- end
43
+ class Configuration
44
+ end
45
45
 
46
- I18n.load_path << Dir["#{File.expand_path('config/locales')}/*.yml"]
47
- I18n.config.available_locales = :en, :'pt-BR'
48
- I18n.default_locale = :en
49
- I18n.reload!
46
+ module Bgcheck
47
+ SRV_ENDPOINT = "backgroundcheck"
50
48
  end
51
49
  end
@@ -0,0 +1,17 @@
1
+ en:
2
+ errors:
3
+ bigid:
4
+ auth:
5
+ authentication_error: An error ocurred during the authentication
6
+ bad_request_error: The request body or format is invalid
7
+ invalid_credentials_error: The credentials informed are invalid
8
+ server_error: An internal server error ocurred
9
+ bgcheck:
10
+ bad_request_error: The request body or format is invalid
11
+ document_not_supported_error: The document type is not supported
12
+ internal_error: An internal error on the BigId server ocurred
13
+ invalid_document_value_error: The document value is invalid
14
+ invalid_credentials_error: The credentials informed are invalid
15
+ no_info_error: No informations available
16
+ not_permission_error: Action not allowed
17
+ server_error: An internal server error ocurred
@@ -0,0 +1,17 @@
1
+ 'pt-BR':
2
+ errors:
3
+ bigid:
4
+ auth:
5
+ authentication_error: Ocorreu um erro durante a autenticação
6
+ bad_request_error: O corpo ou formato da requisição é inválido
7
+ invalid_credentials_error: As credenciais informadas são inválidas
8
+ server_error: Ocorreu um erro inesperado no servidor
9
+ bgcheck:
10
+ bad_request_error: O corpo ou formato da requisição é inválido
11
+ document_not_supported_error: O tipo de documento é inválido
12
+ internal_error: Ocorreu um erro ao verificar a pessoa no BigId
13
+ invalid_document_value_error: O valor do documento é inválido
14
+ invalid_credentials_error: As credenciais informadas são inválidas
15
+ no_info_error: Sem informações disponíveis
16
+ not_permission_error: Ação não permitida
17
+ server_error: Ocorreu um erro inesperado no servidor
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ RSpec.describe Bigid::Bgcheck::BadRequestError do
6
+ include_examples "error"
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ RSpec.describe Bigid::Bgcheck::BaseError do
6
+ include_examples "error"
7
+ end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require "bigid/bgcheck/doc_type"
5
4
 
6
5
  RSpec.describe Bigid::Bgcheck::DocType do
7
6
  describe ".valid?(document_type)" do
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ RSpec.describe Bigid::Bgcheck::DocumentNotSupportedError do
6
+ include_examples "error"
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ RSpec.describe Bigid::Bgcheck::InternalError do
6
+ include_examples "http_error"
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ RSpec.describe Bigid::Bgcheck::InvalidCredentialsError do
6
+ include_examples "error"
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ RSpec.describe Bigid::Bgcheck::InvalidDocumentValueError do
6
+ include_examples "error"
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ RSpec.describe Bigid::Bgcheck::NoInfoError do
6
+ include_examples "http_error"
7
+ end
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ RSpec.describe Bigid::Bgcheck::Request do
6
+ describe "#call" do
7
+ let(:connection) { instance_double(Bigid::Auth::AuthenticatedConnection) }
8
+ let(:body) {
9
+ {
10
+ Login: "username_value",
11
+ parameters: { CNPJ: document },
12
+ Group: group
13
+ }.to_json
14
+ }
15
+ let(:success_result) { build(:result, :approved) }
16
+ let(:success_result_response) {
17
+ JSON.parse({
18
+ body: {
19
+ RawData: success_result.raw_data,
20
+ ScoreDetails: success_result.score_details,
21
+ RelatedScoreDetails: success_result.related_score_details,
22
+ LimitScore: success_result.limit_score,
23
+ ResultCode: success_result.code,
24
+ ResultMessage: success_result.message,
25
+ Score: success_result.score,
26
+ TicketId: success_result.ticket_id
27
+ }.to_json,
28
+ status: request_status
29
+ }.to_json, object_class: OpenStruct)
30
+ }
31
+ let(:document) { CNPJ.generate }
32
+ let(:document_type) { "CNPJ" }
33
+ let(:group) { "Default" }
34
+ let(:request_status) { 200 }
35
+
36
+ subject { described_class.new.call(document: document, document_type: document_type, group: group) }
37
+
38
+ before do
39
+ allow(Bigid::Auth::AuthenticatedConnection).to receive(:new).and_return(connection)
40
+ allow(connection).to receive(:post).and_return(success_result_response)
41
+ end
42
+
43
+ describe ".call" do
44
+ subject { described_class.call(document: document, document_type: document_type, group: group) }
45
+
46
+ it { expect(subject).to be_kind_of(Bigid::Bgcheck::Result) }
47
+
48
+ it { subject; expect(connection).to have_received(:post) }
49
+ end
50
+
51
+ context "when all parameters are valid" do
52
+ it { expect(subject).to be_kind_of(Bigid::Bgcheck::Result) }
53
+
54
+ it { subject; expect(connection).to have_received(:post) }
55
+ end
56
+
57
+ context "when document type is invalid" do
58
+ let(:document_type) { "CNP" }
59
+
60
+ it { expect { subject }.to raise_error(Bigid::Bgcheck::DocumentNotSupportedError) }
61
+ end
62
+
63
+ context "when request status is null" do
64
+ let(:request_status) { nil }
65
+
66
+ it { expect { subject }.to raise_error(Bigid::Bgcheck::InternalError) }
67
+ end
68
+
69
+ context "when request status is server error" do
70
+ let(:request_status) { 500 }
71
+
72
+ it { expect { subject }.to raise_error(Bigid::Bgcheck::ServerError) }
73
+ end
74
+
75
+ context "when request status is auth error" do
76
+ let(:request_status) { 401 }
77
+
78
+ it { expect { subject }.to raise_error(Bigid::Bgcheck::InvalidCredentialsError) }
79
+ end
80
+
81
+ context "when request status is bad request" do
82
+ let(:request_status) { 400 }
83
+
84
+ it { expect { subject }.to raise_error(Bigid::Bgcheck::BadRequestError) }
85
+ end
86
+
87
+ context "when the result code is empty" do
88
+ let(:success_result) { build(:result, :approved, code: nil) }
89
+
90
+ it { expect { subject }.to raise_error(Bigid::Bgcheck::InvalidDocumentValueError) }
91
+ end
92
+
93
+ context "when the result code is empty" do
94
+ let(:success_result) { build(:result, :approved, code: Bigid::Bgcheck::ResultCode::NO_INFO) }
95
+
96
+ it { expect { subject }.to raise_error(Bigid::Bgcheck::NoInfoError) }
97
+ end
98
+ end
99
+ end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require "bigid/bgcheck/result_code"
5
4
 
6
5
  RSpec.describe Bigid::Bgcheck::ResultCode do
7
6
  describe ".valid?(code)" do
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ RSpec.describe Bigid::Bgcheck::ServerError do
6
+ include_examples "error"
7
+ end
@@ -1,44 +1,25 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "spec_helper"
4
- require "bigid_bgcheck"
5
4
 
6
5
  RSpec.describe Bigid::Bgcheck do
7
- describe "BASE_URL" do
8
- subject { defined? Bigid::Bgcheck::BASE_URL }
9
-
10
- it { expect(subject).to be_truthy }
11
- end
12
-
13
- describe "AUTH_ENDPOINT" do
14
- subject { defined? Bigid::Bgcheck::AUTH_ENDPOINT }
15
-
16
- it { expect(subject).to be_truthy }
17
- end
18
-
19
6
  describe "SRV_ENDPOINT" do
20
7
  subject { defined? Bigid::Bgcheck::SRV_ENDPOINT }
21
8
 
22
9
  it { expect(subject).to be_truthy }
23
10
  end
24
11
 
25
- describe "TOKEN_EXPIRATION" do
26
- subject { defined? Bigid::Bgcheck::TOKEN_EXPIRATION }
27
-
28
- it { expect(subject).to be_truthy }
29
- end
30
-
31
12
  describe ".configure" do
32
13
  before do
33
- described_class.configuration = nil
14
+ Bigid.configuration = nil
34
15
  ENV.clear
35
16
  end
36
17
 
37
- subject { described_class.configuration }
18
+ subject { Bigid.configuration }
38
19
 
39
20
  context "when configuration is defined" do
40
21
  before do
41
- described_class.configure do |config|
22
+ Bigid.configure do |config|
42
23
  config.username = "username_value"
43
24
  config.password = "password_value"
44
25
  end
@@ -77,7 +58,7 @@ RSpec.describe Bigid::Bgcheck do
77
58
  ENV["BIGID_USERNAME"] = "username_value"
78
59
  ENV["BIGID_PASSWORD"] = "password_value"
79
60
 
80
- described_class.configure do |config|
61
+ Bigid.configure do |config|
81
62
  config.username = "username_value2"
82
63
  config.password = "password_value2"
83
64
  end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ FactoryBot.define do
4
+ factory :result, class: "Bigid::Bgcheck::Result" do
5
+ trait :approved do
6
+ approved { true }
7
+ code { Bigid::Bgcheck::ResultCode::APPROVED }
8
+ score_details { {} }
9
+ limit_score { 10.0 }
10
+ message { "Approved" }
11
+ score { 10.0 }
12
+ ticket_id { SecureRandom.hex(8) }
13
+ raw_data { "{}" }
14
+ raw_response { "{\"ScoreDetails\":#{score_details},\"LimitScore\":#{limit_score},\"ResultCode\":#{code},\"ResultMessage\":\"#{message}\",\"Score\":#{score},\"TicketId\":\"#{ticket_id}\"}" }
15
+ related_score_details { "{}" }
16
+ end
17
+
18
+ trait :unapproved do
19
+ approved { false }
20
+ code { Bigid::Bgcheck::ResultCode::NOT_APPROVED }
21
+ score_details { }
22
+ limit_score { 10.0 }
23
+ message { "Not Approved" }
24
+ raw_response { "{\"ScoreDetails\":null,\"LimitScore\":10.0,\"ResultCode\":90,\"ResultMessage\":\"Approved\",\"Score\":10.0,\"TicketId\":\"d735711aeb909de9\"}" }
25
+ score { 1.0 }
26
+ ticket_id { SecureRandom.hex(8) }
27
+ end
28
+
29
+ initialize_with do
30
+ new(
31
+ approved: approved,
32
+ code: code,
33
+ score_details: score_details,
34
+ limit_score: limit_score,
35
+ message: message,
36
+ raw_data: raw_data,
37
+ raw_response: raw_response,
38
+ related_score_details: related_score_details,
39
+ score: score,
40
+ score_details: score_details,
41
+ ticket_id: ticket_id
42
+ )
43
+ end
44
+ end
45
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,28 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "simplecov"
4
+
5
+ SimpleCov.formatters = [SimpleCov::Formatter::HTMLFormatter]
6
+ SimpleCov.minimum_coverage 70.0
7
+
8
+ SimpleCov.start do
9
+ add_filter "/spec/"
10
+ minimum_coverage 70
11
+ minimum_coverage_by_file 50
12
+ end
13
+
14
+ require "bigid_auth"
15
+ require "bigid/bgcheck/base_error"
16
+
17
+ Dir["./spec/support/**/*.rb"].each { |f| require f }
18
+ Dir["./spec/initializers/**/*.rb"].each { |f| require f }
19
+ Dir["./lib/**/*.rb"].sort.each { |file| require file }
20
+
3
21
  require "rubygems"
4
22
  require "bundler"
23
+ require "bigid_bgcheck"
24
+ require "factory_bot"
25
+ require "pry"
5
26
 
6
27
  begin
7
28
  Bundler.setup(:default, :development, :test)
@@ -12,14 +33,15 @@ rescue Bundler::BundlerError => e
12
33
  exit e.status_code
13
34
  end
14
35
 
15
- require "simplecov"
36
+ RSpec.configure do |config|
37
+ config.include FactoryBot::Syntax::Methods
16
38
 
17
- SimpleCov.start do
18
- add_filter "spec"
19
- end
39
+ # Enable flags like --only-failures and --next-failure
40
+ config.example_status_persistence_file_path = ".rspec_status"
20
41
 
21
- RSpec.configure do |config|
22
- # some (optional) config here
42
+ config.expect_with :rspec do |c|
43
+ c.syntax = :expect
44
+ end
23
45
  end
24
46
 
25
- # minitest/mock # Uncomment me to use minitest mocks
47
+ FactoryBot.find_definitions
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ RSpec.shared_examples "error" do
6
+ describe ".initialize" do
7
+ context "when message parameter is null" do
8
+ subject { described_class.new.message }
9
+
10
+ it { expect(subject).to eq(described_class.default_message) }
11
+ end
12
+
13
+ context "when message parameter is not null" do
14
+ subject { described_class.new(message).message }
15
+
16
+ let(:message) { "message" }
17
+
18
+ it { expect(subject).to eq(message) }
19
+ end
20
+ end
21
+
22
+ describe ".default_message" do
23
+ let(:expected_result) { I18n.t("errors.#{described_class.name.underscore.tr("/", ".")}") }
24
+
25
+ subject { described_class.default_message }
26
+
27
+ it "searches the default message in I18n using the class name" do
28
+ expect(subject).to eq(expected_result)
29
+ end
30
+ end
31
+ end
32
+
33
+ RSpec.shared_examples "http_error" do
34
+ include_examples "error"
35
+
36
+ describe "#http_status" do
37
+ subject { described_class.new.http_status }
38
+
39
+ it { expect(subject).to eq(described_class::HTTP_STATUS) }
40
+ end
41
+
42
+ describe "#status" do
43
+ subject { described_class.new.status }
44
+
45
+ it { expect(subject).to eq(described_class::STATUS) }
46
+ end
47
+
48
+ describe "#status_code" do
49
+ subject { described_class.new.status_code }
50
+
51
+ it { expect(subject).to eq(described_class::STATUS_CODE) }
52
+ end
53
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bigid_bgcheck
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.3.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danilo Carolino
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-18 00:00:00.000000000 Z
11
+ date: 2021-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bigid_auth
@@ -16,27 +16,27 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.0
19
+ version: '0.2'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: '0.1'
22
+ version: '0.2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 0.1.0
29
+ version: '0.2'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: '0.1'
32
+ version: '0.2'
33
33
  - !ruby/object:Gem::Dependency
34
- name: faraday
34
+ name: i18n
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 1.4.0
39
+ version: '1.8'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
42
  version: '1.0'
@@ -46,106 +46,106 @@ dependencies:
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: 1.4.0
49
+ version: '1.8'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
52
  version: '1.0'
53
53
  - !ruby/object:Gem::Dependency
54
- name: i18n
54
+ name: json
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - "~>"
58
58
  - !ruby/object:Gem::Version
59
- version: 1.8.0
59
+ version: '2.5'
60
60
  - - ">="
61
61
  - !ruby/object:Gem::Version
62
- version: '1.0'
62
+ version: '2.0'
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: 1.8.0
69
+ version: '2.5'
70
70
  - - ">="
71
71
  - !ruby/object:Gem::Version
72
- version: '1.0'
72
+ version: '2.0'
73
73
  - !ruby/object:Gem::Dependency
74
- name: json
74
+ name: cpf_cnpj
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: 2.5.0
79
+ version: '0.5'
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '2.0'
82
+ version: '0.5'
83
83
  type: :runtime
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.5.0
89
+ version: '0.5'
90
90
  - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: '2.0'
92
+ version: '0.5'
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: bundler
95
95
  requirement: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - ">="
98
98
  - !ruby/object:Gem::Version
99
- version: 1.2.0
99
+ version: '1.2'
100
100
  type: :development
101
101
  prerelease: false
102
102
  version_requirements: !ruby/object:Gem::Requirement
103
103
  requirements:
104
104
  - - ">="
105
105
  - !ruby/object:Gem::Version
106
- version: 1.2.0
106
+ version: '1.2'
107
107
  - !ruby/object:Gem::Dependency
108
108
  name: factory_bot
109
109
  requirement: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
- version: 6.1.0
113
+ version: '6.2'
114
114
  type: :development
115
115
  prerelease: false
116
116
  version_requirements: !ruby/object:Gem::Requirement
117
117
  requirements:
118
118
  - - "~>"
119
119
  - !ruby/object:Gem::Version
120
- version: 6.1.0
120
+ version: '6.2'
121
121
  - !ruby/object:Gem::Dependency
122
- name: gemsurance
122
+ name: fuubar
123
123
  requirement: !ruby/object:Gem::Requirement
124
124
  requirements:
125
125
  - - "~>"
126
126
  - !ruby/object:Gem::Version
127
- version: '0.10'
127
+ version: '2.5'
128
128
  type: :development
129
129
  prerelease: false
130
130
  version_requirements: !ruby/object:Gem::Requirement
131
131
  requirements:
132
132
  - - "~>"
133
133
  - !ruby/object:Gem::Version
134
- version: '0.10'
134
+ version: '2.5'
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: pry
137
137
  requirement: !ruby/object:Gem::Requirement
138
138
  requirements:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
- version: 0.14.0
141
+ version: '0.14'
142
142
  type: :development
143
143
  prerelease: false
144
144
  version_requirements: !ruby/object:Gem::Requirement
145
145
  requirements:
146
146
  - - "~>"
147
147
  - !ruby/object:Gem::Version
148
- version: 0.14.0
148
+ version: '0.14'
149
149
  - !ruby/object:Gem::Dependency
150
150
  name: rake
151
151
  requirement: !ruby/object:Gem::Requirement
@@ -172,70 +172,70 @@ dependencies:
172
172
  requirements:
173
173
  - - "~>"
174
174
  - !ruby/object:Gem::Version
175
- version: 3.10.0
175
+ version: '3.10'
176
176
  type: :development
177
177
  prerelease: false
178
178
  version_requirements: !ruby/object:Gem::Requirement
179
179
  requirements:
180
180
  - - "~>"
181
181
  - !ruby/object:Gem::Version
182
- version: 3.10.0
182
+ version: '3.10'
183
183
  - !ruby/object:Gem::Dependency
184
184
  name: rubocop
185
185
  requirement: !ruby/object:Gem::Requirement
186
186
  requirements:
187
187
  - - "~>"
188
188
  - !ruby/object:Gem::Version
189
- version: 1.12.0
189
+ version: '1.17'
190
190
  type: :development
191
191
  prerelease: false
192
192
  version_requirements: !ruby/object:Gem::Requirement
193
193
  requirements:
194
194
  - - "~>"
195
195
  - !ruby/object:Gem::Version
196
- version: 1.12.0
196
+ version: '1.17'
197
197
  - !ruby/object:Gem::Dependency
198
198
  name: rubocop-packaging
199
199
  requirement: !ruby/object:Gem::Requirement
200
200
  requirements:
201
201
  - - "~>"
202
202
  - !ruby/object:Gem::Version
203
- version: 0.5.0
203
+ version: '0.5'
204
204
  type: :development
205
205
  prerelease: false
206
206
  version_requirements: !ruby/object:Gem::Requirement
207
207
  requirements:
208
208
  - - "~>"
209
209
  - !ruby/object:Gem::Version
210
- version: 0.5.0
210
+ version: '0.5'
211
211
  - !ruby/object:Gem::Dependency
212
212
  name: rubocop-performance
213
213
  requirement: !ruby/object:Gem::Requirement
214
214
  requirements:
215
215
  - - "~>"
216
216
  - !ruby/object:Gem::Version
217
- version: 1.10.0
217
+ version: '1.11'
218
218
  type: :development
219
219
  prerelease: false
220
220
  version_requirements: !ruby/object:Gem::Requirement
221
221
  requirements:
222
222
  - - "~>"
223
223
  - !ruby/object:Gem::Version
224
- version: 1.10.0
224
+ version: '1.11'
225
225
  - !ruby/object:Gem::Dependency
226
226
  name: simplecov
227
227
  requirement: !ruby/object:Gem::Requirement
228
228
  requirements:
229
229
  - - "~>"
230
230
  - !ruby/object:Gem::Version
231
- version: 0.21.0
231
+ version: 0.21.2
232
232
  type: :development
233
233
  prerelease: false
234
234
  version_requirements: !ruby/object:Gem::Requirement
235
235
  requirements:
236
236
  - - "~>"
237
237
  - !ruby/object:Gem::Version
238
- version: 0.21.0
238
+ version: 0.21.2
239
239
  description: A library to use BigData Corps background check features
240
240
  email:
241
241
  - danilo.carolino@qflash.com.br
@@ -261,14 +261,30 @@ files:
261
261
  - lib/bigid/bgcheck/server_error.rb
262
262
  - lib/bigid/bgcheck/version.rb
263
263
  - lib/bigid_bgcheck.rb
264
+ - lib/locales/en.yml
265
+ - lib/locales/pt-BR.yml
266
+ - spec/bigid/bgcheck/bad_request_error_spec.rb
267
+ - spec/bigid/bgcheck/base_error_spec.rb
268
+ - spec/bigid/bgcheck/doc_type_spec.rb
269
+ - spec/bigid/bgcheck/document_not_supported_error_spec.rb
270
+ - spec/bigid/bgcheck/internal_error_spec.rb
271
+ - spec/bigid/bgcheck/invalid_credentials_error_spec.rb
272
+ - spec/bigid/bgcheck/invalid_document_value_error_spec.rb
273
+ - spec/bigid/bgcheck/no_info_error_spec.rb
274
+ - spec/bigid/bgcheck/request_spec.rb
275
+ - spec/bigid/bgcheck/result_code_spec.rb
276
+ - spec/bigid/bgcheck/server_error_spec.rb
264
277
  - spec/bigid_bgcheck_spec.rb
265
- - spec/lib/bgcheck/doc_type_spec.rb
266
- - spec/lib/bgcheck/result_code_spec.rb
278
+ - spec/factories/result.rb
267
279
  - spec/spec_helper.rb
268
- homepage: https://github.com/Quasar-Flash/bigid-bgcheck-ruby
280
+ - spec/support/shared_examples/errors_shared_examples.rb
281
+ homepage: https://github.com/Quasar-Flash/bigid_bgcheck
269
282
  licenses:
270
283
  - MIT
271
- metadata: {}
284
+ metadata:
285
+ changelog_uri: https://github.com/Quasar-Flash/bigid_bgcheck/blob/master/CHANGELOG.md
286
+ source_code_uri: https://github.com/Quasar-Flash/bigid_bgcheck
287
+ bug_tracker_uri: https://github.com/Quasar-Flash/bigid_bgcheck/issues
272
288
  post_install_message:
273
289
  rdoc_options: []
274
290
  require_paths:
@@ -277,7 +293,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
277
293
  requirements:
278
294
  - - ">="
279
295
  - !ruby/object:Gem::Version
280
- version: '0'
296
+ version: '2.5'
281
297
  required_rubygems_version: !ruby/object:Gem::Requirement
282
298
  requirements:
283
299
  - - ">="
@@ -290,6 +306,17 @@ specification_version: 4
290
306
  summary: Bigid Background Check Library
291
307
  test_files:
292
308
  - spec/bigid_bgcheck_spec.rb
293
- - spec/lib/bgcheck/result_code_spec.rb
294
- - spec/lib/bgcheck/doc_type_spec.rb
309
+ - spec/support/shared_examples/errors_shared_examples.rb
310
+ - spec/factories/result.rb
295
311
  - spec/spec_helper.rb
312
+ - spec/bigid/bgcheck/invalid_document_value_error_spec.rb
313
+ - spec/bigid/bgcheck/bad_request_error_spec.rb
314
+ - spec/bigid/bgcheck/no_info_error_spec.rb
315
+ - spec/bigid/bgcheck/internal_error_spec.rb
316
+ - spec/bigid/bgcheck/result_code_spec.rb
317
+ - spec/bigid/bgcheck/server_error_spec.rb
318
+ - spec/bigid/bgcheck/request_spec.rb
319
+ - spec/bigid/bgcheck/invalid_credentials_error_spec.rb
320
+ - spec/bigid/bgcheck/document_not_supported_error_spec.rb
321
+ - spec/bigid/bgcheck/doc_type_spec.rb
322
+ - spec/bigid/bgcheck/base_error_spec.rb