2026-01-02 13:41:09 +00:00
# Copyright (C) 2012-2026 Zammad Foundation, https://zammad-foundation.org/
2025-01-09 14:47:18 +00:00
require 'rails_helper'
RSpec . describe MicrosoftGraph :: ApiError do
2026-02-20 10:50:25 +00:00
subject ( :instance ) { described_class . new ( error_details ) }
2025-01-09 14:47:18 +00:00
2026-02-20 10:50:25 +00:00
let ( :error_details ) do
2025-01-09 14:47:18 +00:00
{
code : 'badRequest' ,
message : 'Uploaded fragment overlaps with existing data.' ,
innerError : {
code : 'invalidRange' ,
'request-id' : 'request-id' ,
date : 'date-time'
}
}
end
describe '#message' do
context 'with full error hash' do
it 'generates correct message' do
expect ( instance . message ) . to eq ( " Uploaded fragment overlaps with existing data. (badRequest) \n Microsoft Graph API Request ID: request-id " )
end
end
context 'with incomplete error hash' do
2026-02-20 10:50:25 +00:00
let ( :error_details ) do
2025-01-09 14:47:18 +00:00
{
message : 'Uploaded fragment overlaps with existing data.' ,
}
end
it 'generates correct message' do
expect ( instance . message ) . to eq ( 'Uploaded fragment overlaps with existing data. (no error code present)' )
end
end
context 'without error hash' do
2026-02-20 10:50:25 +00:00
let ( :error_details ) { { } }
2025-01-09 14:47:18 +00:00
it 'generates correct message' do
expect ( instance . message ) . to eq ( 'An unknown error occurred. (no error code present)' )
end
end
2026-02-20 10:50:25 +00:00
context 'with string error details' do
let ( :error_details ) { 'Microsoft Graph API: Connection timeout' }
it 'generates correct message' do
expect ( instance . message ) . to eq ( 'Microsoft Graph API: Connection timeout (no error code present)' )
end
end
2025-01-09 14:47:18 +00:00
end
describe '#inspect' do
it 'generates a correct object representation' do
expect ( instance . inspect ) . to eq ( '#<MicrosoftGraph::ApiError: "Uploaded fragment overlaps with existing data. (badRequest)\\nMicrosoft Graph API Request ID: request-id">' )
end
end
end