diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-03-18 23:02:30 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-03-18 23:02:30 +0300 |
commit | 41fe97390ceddf945f3d967b8fdb3de4c66b7dea (patch) | |
tree | 9c8d89a8624828992f06d892cd2f43818ff5dcc8 /spec/helpers/application_helper_spec.rb | |
parent | 0804d2dc31052fb45a1efecedc8e06ce9bc32862 (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.rb | 108 |
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 |