51 lines
1.7 KiB
Ruby
51 lines
1.7 KiB
Ruby
|
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
|