diff options
Diffstat (limited to 'spec/models/error_tracking/error_event_spec.rb')
-rw-r--r-- | spec/models/error_tracking/error_event_spec.rb | 44 |
1 files changed, 7 insertions, 37 deletions
diff --git a/spec/models/error_tracking/error_event_spec.rb b/spec/models/error_tracking/error_event_spec.rb index 9cf5a405e74..6dab8fbf757 100644 --- a/spec/models/error_tracking/error_event_spec.rb +++ b/spec/models/error_tracking/error_event_spec.rb @@ -2,7 +2,9 @@ require 'spec_helper' -RSpec.describe ErrorTracking::ErrorEvent, type: :model do +RSpec.describe ErrorTracking::ErrorEvent do + include AfterNextHelpers + let_it_be(:event) { create(:error_tracking_error_event) } describe 'relationships' do @@ -18,44 +20,12 @@ RSpec.describe ErrorTracking::ErrorEvent, type: :model do end describe '#stacktrace' do - it 'generates a correct stacktrace in expected format' do - expected_context = [ - [132, " end\n"], - [133, "\n"], - [134, " begin\n"], - [135, " block.call(work, *extra)\n"], - [136, " rescue Exception => e\n"], - [137, " STDERR.puts \"Error reached top of thread-pool: #\{e.message\} (#\{e.class\})\"\n"], - [138, " end\n"] - ] - - expected_entry = { - 'lineNo' => 135, - 'context' => expected_context, - 'filename' => 'puma/thread_pool.rb', - 'function' => 'block in spawn_thread', - 'colNo' => 0 - } + it 'builds a stacktrace' do + expect_next(ErrorTracking::StacktraceBuilder, event.payload) + .to receive(:stacktrace).and_call_original expect(event.stacktrace).to be_kind_of(Array) - expect(event.stacktrace.first).to eq(expected_entry) - end - - context 'error context is missing' do - let(:event) { create(:error_tracking_error_event, :browser) } - - it 'generates a stacktrace without context' do - expected_entry = { - 'lineNo' => 6395, - 'context' => [], - 'filename' => 'webpack-internal:///./node_modules/vue/dist/vue.runtime.esm.js', - 'function' => 'hydrate', - 'colNo' => 0 - } - - expect(event.stacktrace).to be_kind_of(Array) - expect(event.stacktrace.first).to eq(expected_entry) - end + expect(event.stacktrace).not_to be_empty end end |