Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-06-20 13:43:29 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-06-20 13:43:29 +0300
commit3b1af5cc7ed2666ff18b718ce5d30fa5a2756674 (patch)
tree3bc4a40e0ee51ec27eabf917c537033c0c5b14d4 /spec/services/error_tracking
parent9bba14be3f2c211bf79e15769cd9b77bc73a13bc (diff)
Add latest changes from gitlab-org/gitlab@16-1-stable-eev16.1.0-rc42
Diffstat (limited to 'spec/services/error_tracking')
-rw-r--r--spec/services/error_tracking/collect_error_service_spec.rb140
1 files changed, 0 insertions, 140 deletions
diff --git a/spec/services/error_tracking/collect_error_service_spec.rb b/spec/services/error_tracking/collect_error_service_spec.rb
deleted file mode 100644
index 3ff753e8c65..00000000000
--- a/spec/services/error_tracking/collect_error_service_spec.rb
+++ /dev/null
@@ -1,140 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe ErrorTracking::CollectErrorService, feature_category: :error_tracking do
- let_it_be(:project) { create(:project) }
-
- let(:parsed_event_file) { 'error_tracking/parsed_event.json' }
- let(:parsed_event) { parse_valid_event(parsed_event_file) }
-
- subject { described_class.new(project, nil, event: parsed_event) }
-
- describe '#execute' do
- it 'creates Error and creates ErrorEvent' do
- expect { subject.execute }
- .to change { ErrorTracking::Error.count }.by(1)
- .and change { ErrorTracking::ErrorEvent.count }.by(1)
- end
-
- it 'updates Error and created ErrorEvent on second hit' do
- subject.execute
-
- expect { subject.execute }.not_to change { ErrorTracking::Error.count }
- expect { subject.execute }.to change { ErrorTracking::ErrorEvent.count }.by(1)
- end
-
- it 'has correct values set' do
- subject.execute
-
- event = ErrorTracking::ErrorEvent.last
- error = event.error
-
- expect(error.name).to eq 'ActionView::MissingTemplate'
- expect(error.description).to start_with 'Missing template posts/error2'
- expect(error.actor).to eq 'PostsController#error2'
- expect(error.platform).to eq 'ruby'
- expect(error.last_seen_at).to eq '2021-07-08T12:59:16Z'
-
- expect(event.description).to start_with 'Missing template posts/error2'
- expect(event.occurred_at).to eq '2021-07-08T12:59:16Z'
- expect(event.level).to eq 'error'
- expect(event.environment).to eq 'development'
- expect(event.payload).to eq parsed_event
- end
-
- context 'python sdk event' do
- let(:parsed_event_file) { 'error_tracking/python_event.json' }
-
- it 'creates a valid event' do
- expect { subject.execute }.to change { ErrorTracking::ErrorEvent.count }.by(1)
- end
- end
-
- context 'with unusual payload' do
- let(:event) { ErrorTracking::ErrorEvent.last! }
-
- context 'when transaction is missing' do
- it 'builds actor from stacktrace' do
- parsed_event.delete('transaction')
-
- subject.execute
-
- expect(event.error.actor).to eq 'find()'
- end
- end
-
- context 'when transaction is an empty string' do \
- it 'builds actor from stacktrace' do
- parsed_event['transaction'] = ''
-
- subject.execute
-
- expect(event.error.actor).to eq 'find()'
- end
- end
-
- context 'when timestamp is numeric' do
- it 'parses timestamp' do
- parsed_event['timestamp'] = '1631015580.50'
-
- subject.execute
-
- expect(event.occurred_at).to eq '2021-09-07T11:53:00.5'
- end
- end
- end
-
- context 'go payload' do
- let(:parsed_event_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
-
- context 'with two exceptions' do
- let(:parsed_event_file) { 'error_tracking/go_two_exception_event.json' }
-
- it 'reports using second exception', :aggregate_failures do
- subject.execute
-
- event = ErrorTracking::ErrorEvent.last
- error = event.error
-
- expect(error.name).to eq '*url.Error'
- expect(error.description).to eq(%(Get \"foobar\": unsupported protocol scheme \"\"))
- expect(error.platform).to eq 'go'
- expect(error.actor).to eq('main(main)')
-
- expect(event.description).to eq(%(Get \"foobar\": unsupported protocol scheme \"\"))
- expect(event.payload).to eq parsed_event
- end
- end
- end
- end
-
- private
-
- def parse_valid_event(parsed_event_file)
- parsed_event = Gitlab::Json.parse(fixture_file(parsed_event_file))
-
- validator = ErrorTracking::Collector::PayloadValidator.new
- # This a precondition for all specs to verify that
- # submitted JSON payload is valid.
- expect(validator).to be_valid(parsed_event)
-
- parsed_event
- end
-end