You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cartodb/spec/lib/errors_spec.rb

51 lines
1.7 KiB

require 'spec_helper'
describe CartoDB do
describe '#base_cartodb_error' do
it 'Tests usage of the base cartodb exception/error' do
error_message = 'something !!!'
nested_exception = StandardError.new('123456 cartodb')
expect {
begin
raise nested_exception
rescue StandardError => exc
raise CartoDB::BaseCartoDBError.new(error_message, exc)
end
}.to raise_exception CartoDB::BaseCartoDBError
begin
begin
raise nested_exception
rescue StandardError => exc
raise CartoDB::BaseCartoDBError.new(error_message, exc)
end
rescue CartoDB::BaseCartoDBError => our_exception
our_exception.backtrace.should eq nested_exception.backtrace
our_exception.message.should eq (error_message + CartoDB::BaseCartoDBError::APPENDED_MESSAGE_PREFIX + nested_exception.message)
end
end
end
describe CartoDB::CentralCommunicationFailure do
describe '#user_message' do
it 'supports single error JSON messages' do
error = 'Something is really broken'
response = mock
response.stubs(:code).returns(403)
response.stubs(:body).returns("{\"errors\":\"#{error}\"}")
e = CartoDB::CentralCommunicationFailure.new(response)
e.user_message.should eq "There was a problem with authentication server. #{error}"
end
it 'supports multiple error JSON messages' do
response = mock
response.stubs(:code).returns(403)
response.stubs(:body).returns("{\"errors\":[\"A\", \"B\"]}")
e = CartoDB::CentralCommunicationFailure.new(response)
e.user_message.should eq "There was a problem with authentication server. A ; B"
end
end
end
end