Sha256: 4e75d4c12f48a69def257f39388c98cd97d96027a211be2e36743e0dc9e00c79

Contents?: true

Size: 1.66 KB

Versions: 9

Compression:

Stored size: 1.66 KB

Contents

module CorreiosSigep
  module LogisticReverse
    describe RequestSRO do
      let(:sro_params) { { collect_number: '1234', type: 'A' } }
      let(:sro) { CorreiosSigep::Models::SRO.new(sro_params) }

      describe '.initialize' do
        subject { described_class.new(sro) }

        it 'instantiates necessary classes' do
          expect(subject.class).to eq CorreiosSigep::LogisticReverse::RequestSRO
        end
      end

      describe '.process' do
        subject { described_class.new(sro).process }

        before :each do
          expect_any_instance_of(RequestSRO).to receive(:invoke).with(any_args) { response }
        end

        let(:response) { double('response', body: response_hash) }
        let(:sro_ticket) { 'ABC123123123BR' }

        context 'when successfully brings a SRO' do
          let(:response_hash) do
            {
              acompanhar_pedido_response: {
                return: {
                  cod_erro: 0,
                  coleta: {
                    objeto: {
                      numero_etiqueta: sro_ticket
                    }
                  }
                }
              }
            }
          end

          it 'returns sro ticket' do
            expect(subject).to eq sro_ticket
          end
        end

        context 'when SRO is not ready yet' do
          let(:response_hash) do
            {
              acompanhar_pedido_response: {
                return: {
                  cod_erro: 1
                }
              }
            }
          end

          it 'raises an error' do
            expect{subject}.to raise_error Models::Errors::SRONotReady
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
correios_sigep-0.2.3 spec/correios_sigep/logistic_reverse/request_sro_spec.rb
correios_sigep-0.2.2 spec/correios_sigep/logistic_reverse/request_sro_spec.rb
correios_sigep-0.2.1 spec/correios_sigep/logistic_reverse/request_sro_spec.rb
correios_sigep-0.2.0 spec/correios_sigep/logistic_reverse/request_sro_spec.rb
correios_sigep-0.1.1 spec/correios_sigep/logistic_reverse/request_sro_spec.rb
correios_sigep-0.1.0 spec/correios_sigep/logistic_reverse/request_sro_spec.rb
correios_sigep-0.0.5 spec/correios_sigep/logistic_reverse/request_sro_spec.rb
correios_sigep-0.0.4 spec/correios_sigep/logistic_reverse/request_sro_spec.rb
correios_sigep-0.0.3 spec/correios_sigep/logistic_reverse/request_sro_spec.rb