summaryrefslogtreecommitdiff
path: root/spec/helpers/application_helper_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/helpers/application_helper_spec.rb')
-rw-r--r--spec/helpers/application_helper_spec.rb68
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