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>2022-03-18 23:02:30 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-03-18 23:02:30 +0300
commit41fe97390ceddf945f3d967b8fdb3de4c66b7dea (patch)
tree9c8d89a8624828992f06d892cd2f43818ff5dcc8 /spec/helpers/application_helper_spec.rb
parent0804d2dc31052fb45a1efecedc8e06ce9bc32862 (diff)
Add latest changes from gitlab-org/gitlab@14-9-stable-eev14.9.0-rc42
Diffstat (limited to 'spec/helpers/application_helper_spec.rb')
-rw-r--r--spec/helpers/application_helper_spec.rb108
1 files changed, 108 insertions, 0 deletions
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index e6a2e3f8211..47c31546629 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -517,4 +517,112 @@ RSpec.describe ApplicationHelper do
end
end
end
+
+ describe '#dispensable_render' do
+ context 'when an error occurs in the template to be rendered' do
+ before do
+ allow(helper).to receive(:render).and_raise
+ end
+
+ it 'calls `track_and_raise_for_dev_exception`' do
+ expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception)
+ helper.dispensable_render
+ end
+
+ context 'for development environment' do
+ before do
+ stub_rails_env('development')
+ end
+
+ it 'raises an error' do
+ expect { helper.dispensable_render }.to raise_error(StandardError)
+ end
+ end
+
+ context 'for production environments' do
+ before do
+ stub_rails_env('production')
+ end
+
+ it 'returns nil' do
+ expect(helper.dispensable_render).to be_nil
+ end
+
+ context 'when the feature flag is disabled' do
+ before do
+ stub_feature_flags(dispensable_render: false)
+ end
+
+ it 'raises an error' do
+ expect { helper.dispensable_render }.to raise_error(StandardError)
+ end
+ end
+ end
+ end
+
+ context 'when no error occurs in the template to be rendered' do
+ before do
+ allow(helper).to receive(:render).and_return('foo')
+ end
+
+ it 'does not track or raise and returns the rendered content' do
+ expect(Gitlab::ErrorTracking).not_to receive(:track_and_raise_for_dev_exception)
+ expect(helper.dispensable_render).to eq('foo')
+ end
+ end
+ end
+
+ describe '#dispensable_render_if_exists' do
+ context 'when an error occurs in the template to be rendered' do
+ before do
+ allow(helper).to receive(:render_if_exists).and_raise
+ end
+
+ it 'calls `track_and_raise_for_dev_exception`' do
+ expect(Gitlab::ErrorTracking).to receive(:track_and_raise_for_dev_exception)
+ helper.dispensable_render_if_exists
+ end
+
+ context 'for development environment' do
+ before do
+ stub_rails_env('development')
+ end
+
+ it 'raises an error' do
+ expect { helper.dispensable_render_if_exists }.to raise_error(StandardError)
+ end
+ end
+
+ context 'for production environments' do
+ before do
+ stub_rails_env('production')
+ end
+
+ it 'returns nil' do
+ expect(helper.dispensable_render_if_exists).to be_nil
+ end
+
+ context 'when the feature flag is disabled' do
+ before do
+ stub_feature_flags(dispensable_render: false)
+ end
+
+ it 'raises an error' do
+ expect { helper.dispensable_render_if_exists }.to raise_error(StandardError)
+ end
+ end
+ end
+ end
+
+ context 'when no error occurs in the template to be rendered' do
+ before do
+ allow(helper).to receive(:render_if_exists).and_return('foo')
+ end
+
+ it 'does not track or raise' do
+ expect(Gitlab::ErrorTracking).not_to receive(:track_and_raise_for_dev_exception)
+ expect(helper.dispensable_render_if_exists).to eq('foo')
+ end
+ end
+ end
end