spec/creditsafe/messages_spec.rb in creditsafe-0.1.1 vs spec/creditsafe/messages_spec.rb in creditsafe-0.2.0

- old
+ new

@@ -1,33 +1,68 @@ require 'spec_helper' require 'creditsafe/messages' RSpec.describe(Creditsafe::Messages) do - describe "#for_code" do + describe ".for_code" do subject(:message) { described_class.for_code(code) } context "for a valid code" do let(:code) { "020101" } its(:code) { is_expected.to eq(code) } its(:message) { is_expected.to eq('Invalid credentials') } + its(:error_class) { is_expected.to eq(Creditsafe::AccountError) } end context "for a code without leading zero" do let(:code) { "20101" } its(:code) { is_expected.to eq("0#{code}") } its(:message) { is_expected.to eq('Invalid credentials') } + its(:error_class) { is_expected.to eq(Creditsafe::AccountError) } end context "for an unknown code" do let(:code) { "999999" } its(:code) { is_expected.to eq(code) } its(:message) { is_expected.to eq('Unknown error') } + its(:error_class) { is_expected.to eq(Creditsafe::UnknownApiError) } end context "for an empty code" do let(:code) { '' } it "was passed the wrong parameters" do expect { subject(:message) }.to raise_error + end + end + end + + describe(Creditsafe::Messages::Message) do + subject(:message) do + described_class.new(code: code, message: text, error: error) + end + let(:text) { "Error message" } + let(:code) { "020101" } + let(:error) { true } + + describe "#error_class" do + subject { message.error_class } + + context "when there is no error" do + let(:error) { false } + it { is_expected.to be_nil } + end + + context "when there is an error" do + let(:error) { true } + + context "for a processing error code" do + let(:code) { "040102" } + it { is_expected.to eq(Creditsafe::ProcessingError) } + end + + context "for an unknown error code" do + let(:code) { "060102" } + it { is_expected.to eq(Creditsafe::UnknownApiError) } + end end end end end