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>2019-11-11 18:06:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-11 18:06:42 +0300
commit7071f9bf3e131a7a668922ee450da529f1866b6f (patch)
tree590371b44d47d428f2826b600d7fab4f10520051 /spec/lib/gitlab/grape_logging
parent16bd8409bcb61d2331227d1df539c40683b6bda3 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib/gitlab/grape_logging')
-rw-r--r--spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb51
1 files changed, 51 insertions, 0 deletions
diff --git a/spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb b/spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb
new file mode 100644
index 00000000000..8d7826c0a56
--- /dev/null
+++ b/spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb
@@ -0,0 +1,51 @@
+require 'spec_helper'
+
+describe Gitlab::GrapeLogging::Loggers::ExceptionLogger do
+ subject { described_class.new }
+
+ let(:mock_request) { OpenStruct.new(env: {}) }
+
+ describe ".parameters" do
+ describe 'when no exception is available' do
+ it 'returns an empty hash' do
+ expect(subject.parameters(mock_request, nil)).to eq({})
+ end
+ end
+
+ describe 'when an exception is available' do
+ let(:exception) { RuntimeError.new('This is a test') }
+ let(:mock_request) do
+ OpenStruct.new(
+ env: {
+ ::API::Helpers::API_EXCEPTION_ENV => exception
+ }
+ )
+ end
+
+ let(:expected) do
+ {
+ exception: {
+ class: 'RuntimeError',
+ message: 'This is a test'
+ }
+ }
+ end
+
+ it 'returns the correct fields' do
+ expect(subject.parameters(mock_request, nil)).to eq(expected)
+ end
+
+ context 'with backtrace' do
+ before do
+ current_backtrace = caller
+ allow(exception).to receive(:backtrace).and_return(current_backtrace)
+ expected[:exception][:backtrace] = Gitlab::Profiler.clean_backtrace(current_backtrace)
+ end
+
+ it 'includes the backtrace' do
+ expect(subject.parameters(mock_request, nil)).to eq(expected)
+ end
+ end
+ end
+ end
+end