Sha256: 927678437830adc45e3394abcead05f6b645acb84436ce079006388ba5fe79ba

Contents?: true

Size: 1.32 KB

Versions: 2

Compression:

Stored size: 1.32 KB

Contents

require 'spec_helper'
require_relative '../../lib/PCP-server-Ruby-SDK/errors/api_exception'

RSpec.describe ApiException do
  let(:status_code) { 404 }
  let(:response_body) { "Not Found" }
  let(:cause) { StandardError.new("Original error") }

  describe '#initialize' do
    it 'sets attributes' do
      exception = ApiException.new(status_code, response_body)
      expect(exception.status_code).to eq(status_code)
      expect(exception.response_body).to eq(response_body)
    end

    it 'sets backtrace when initialized with cause' do
      cause.set_backtrace(["line 1", "line 2"])
      exception = ApiException.new(status_code, response_body, cause)
      expect(exception.backtrace).to eq(cause.backtrace)
    end
  end

  describe '#to_s' do
    it 'returns the error message' do
      exception = ApiException.new(status_code, response_body)
      expected_message = "Error message: the server returns an error\nHTTP status code: #{status_code}\nResponse body: #{response_body}"
      expect(exception.to_s).to eq(expected_message)
    end

    it 'returns default message when response body is nil' do
      exception = ApiException.new(status_code, nil)
      expected_message = "Error message: the server returns an error\nHTTP status code: #{status_code}"
      expect(exception.message).to eq(expected_message)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pcp-server-ruby-sdk-0.0.6 spec/errors/api_exception_spec.rb
pcp-server-ruby-sdk-0.1.0 spec/errors/api_exception_spec.rb