diff options
Diffstat (limited to 'spec/helpers/application_helper_spec.rb')
-rw-r--r-- | spec/helpers/application_helper_spec.rb | 68 |
1 files changed, 35 insertions, 33 deletions
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index 3384f9fea05..a8514c373db 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -163,6 +163,13 @@ RSpec.describe ApplicationHelper do expect(timeago_element.attr('class')).to eq 'js-short-timeago' expect(timeago_element.next_element).to eq nil end + + it 'returns blank if time is nil' do + el = helper.time_ago_with_tooltip(nil) + + expect(el).to eq('') + expect(el.html_safe).to eq('') + end end describe '#active_when' do @@ -221,28 +228,43 @@ RSpec.describe ApplicationHelper do end describe '#instance_review_permitted?' do - let_it_be(:non_admin_user) { create :user } - let_it_be(:admin_user) { create :user, :admin } + shared_examples 'returns expected result depending on instance setting' do |instance_setting, expected_result| + before do + allow(::Gitlab::CurrentSettings).to receive(:instance_review_permitted?).and_return(instance_setting) + allow(helper).to receive(:current_user).and_return(current_user) + end - before do - allow(::Gitlab::CurrentSettings).to receive(:instance_review_permitted?).and_return(app_setting) - allow(helper).to receive(:current_user).and_return(current_user) + it { is_expected.to be(expected_result) } end subject { helper.instance_review_permitted? } - where(app_setting: [true, false], is_admin: [true, false, nil]) + context 'as admin' do + let_it_be(:current_user) { build(:user, :admin) } - with_them do - let(:current_user) do - if is_admin.nil? - nil - else - is_admin ? admin_user : non_admin_user + context 'when admin mode setting is disabled', :do_not_mock_admin_mode_setting do + it_behaves_like 'returns expected result depending on instance setting', true, true + it_behaves_like 'returns expected result depending on instance setting', false, false + end + + context 'when admin mode setting is enabled' do + context 'when in admin mode', :enable_admin_mode do + it_behaves_like 'returns expected result depending on instance setting', true, true + it_behaves_like 'returns expected result depending on instance setting', false, false + end + + context 'when not in admin mode' do + it_behaves_like 'returns expected result depending on instance setting', true, false + it_behaves_like 'returns expected result depending on instance setting', false, false end end + end + + context 'as normal user' do + let_it_be(:current_user) { build(:user) } - it { is_expected.to be(app_setting && is_admin) } + it_behaves_like 'returns expected result depending on instance setting', true, false + it_behaves_like 'returns expected result depending on instance setting', false, false end end @@ -597,16 +619,6 @@ RSpec.describe ApplicationHelper do 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 @@ -651,16 +663,6 @@ RSpec.describe ApplicationHelper do 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 |