Merge branch 'fix-error-reporting-go' into 'master'
Fix error reporting for Go See merge request gitlab-org/gitlab!72050
This commit is contained in:
commit
28cf5c88d9
|
@ -28,7 +28,18 @@ def execute
|
|||
private
|
||||
|
||||
def event
|
||||
params[:event]
|
||||
@event ||= format_event(params[:event])
|
||||
end
|
||||
|
||||
def format_event(event)
|
||||
# Some SDK send exception payload as Array. For exmple Go lang SDK.
|
||||
# We need to convert it to hash format we expect.
|
||||
if event['exception'].is_a?(Array)
|
||||
exception = event['exception']
|
||||
event['exception'] = { 'values' => exception }
|
||||
end
|
||||
|
||||
event
|
||||
end
|
||||
|
||||
def exception
|
||||
|
|
1
spec/fixtures/error_tracking/go_parsed_event.json
vendored
Normal file
1
spec/fixtures/error_tracking/go_parsed_event.json
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -4,7 +4,8 @@
|
|||
|
||||
RSpec.describe ErrorTracking::CollectErrorService do
|
||||
let_it_be(:project) { create(:project) }
|
||||
let_it_be(:parsed_event) { Gitlab::Json.parse(fixture_file('error_tracking/parsed_event.json')) }
|
||||
let_it_be(:parsed_event_file) { 'error_tracking/parsed_event.json' }
|
||||
let_it_be(:parsed_event) { Gitlab::Json.parse(fixture_file(parsed_event_file)) }
|
||||
|
||||
subject { described_class.new(project, nil, event: parsed_event) }
|
||||
|
||||
|
@ -72,5 +73,25 @@
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'go payload' do
|
||||
let(:parsed_event) { Gitlab::Json.parse(fixture_file('error_tracking/go_parsed_event.json')) }
|
||||
|
||||
it 'has correct values set' do
|
||||
subject.execute
|
||||
|
||||
event = ErrorTracking::ErrorEvent.last
|
||||
error = event.error
|
||||
|
||||
expect(error.name).to eq '*errors.errorString'
|
||||
expect(error.description).to start_with 'Hello world'
|
||||
expect(error.platform).to eq 'go'
|
||||
|
||||
expect(event.description).to start_with 'Hello world'
|
||||
expect(event.level).to eq 'error'
|
||||
expect(event.environment).to eq 'Accumulate'
|
||||
expect(event.payload).to eq parsed_event
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue