diff options
author | Luke Bennett <lbennett@gitlab.com> | 2019-06-28 22:38:26 +0100 |
---|---|---|
committer | Douglas Barbosa Alexandre <dbalexandre@gmail.com> | 2019-07-15 13:00:55 -0300 |
commit | 9b40fc7416c55625f46139f89f0dff3b028a30c0 (patch) | |
tree | 91ab62a693b74a8637ce1b5cd653c40bde0897c6 /spec/helpers | |
parent | 96277bb9d61b5aaf5c2edc388c5eabfc743478f0 (diff) | |
download | gitlab-ce-9b40fc7416c55625f46139f89f0dff3b028a30c0.tar.gz |
Hide restricted and disallowed visibility radioshide-restricted-visibility-radio
Show a message if many levels are restricted and a
different message if all levels are restricted.
Diffstat (limited to 'spec/helpers')
-rw-r--r-- | spec/helpers/visibility_level_helper_spec.rb | 72 |
1 files changed, 46 insertions, 26 deletions
diff --git a/spec/helpers/visibility_level_helper_spec.rb b/spec/helpers/visibility_level_helper_spec.rb index 25a2fcf5a81..2d276696208 100644 --- a/spec/helpers/visibility_level_helper_spec.rb +++ b/spec/helpers/visibility_level_helper_spec.rb @@ -137,32 +137,6 @@ describe VisibilityLevelHelper do end end - describe "disallowed_visibility_level_description" do - let(:group) { create(:group, :internal) } - let!(:subgroup) { create(:group, :internal, parent: group) } - let!(:project) { create(:project, :internal, group: group) } - - describe "project" do - it "provides correct description for disabled levels" do - expect(disallowed_visibility_level?(project, Gitlab::VisibilityLevel::PUBLIC)).to be_truthy - expect(strip_tags disallowed_visibility_level_description(Gitlab::VisibilityLevel::PUBLIC, project)) - .to include "the visibility of #{project.group.name} is internal" - end - end - - describe "group" do - it "provides correct description for disabled levels" do - expect(disallowed_visibility_level?(group, Gitlab::VisibilityLevel::PRIVATE)).to be_truthy - expect(disallowed_visibility_level_description(Gitlab::VisibilityLevel::PRIVATE, group)) - .to include "it contains projects with higher visibility", "it contains sub-groups with higher visibility" - - expect(disallowed_visibility_level?(subgroup, Gitlab::VisibilityLevel::PUBLIC)).to be_truthy - expect(strip_tags disallowed_visibility_level_description(Gitlab::VisibilityLevel::PUBLIC, subgroup)) - .to include "the visibility of #{group.name} is internal" - end - end - end - describe "selected_visibility_level" do let(:group) { create(:group, :public) } let!(:project) { create(:project, :internal, group: group) } @@ -207,4 +181,50 @@ describe VisibilityLevelHelper do end end end + + describe 'multiple_visibility_levels_restricted?' do + using RSpec::Parameterized::TableSyntax + + let(:user) { create(:user) } + + subject { helper.multiple_visibility_levels_restricted? } + + where(:restricted_visibility_levels, :expected) do + [Gitlab::VisibilityLevel::PUBLIC] | false + [Gitlab::VisibilityLevel::PUBLIC, Gitlab::VisibilityLevel::INTERNAL] | true + [Gitlab::VisibilityLevel::PUBLIC, Gitlab::VisibilityLevel::INTERNAL, Gitlab::VisibilityLevel::PRIVATE] | true + end + + with_them do + before do + allow(helper).to receive(:current_user) { user } + allow(Gitlab::CurrentSettings.current_application_settings).to receive(:restricted_visibility_levels) { restricted_visibility_levels } + end + + it { is_expected.to eq(expected) } + end + end + + describe 'all_visibility_levels_restricted?' do + using RSpec::Parameterized::TableSyntax + + let(:user) { create(:user) } + + subject { helper.all_visibility_levels_restricted? } + + where(:restricted_visibility_levels, :expected) do + [Gitlab::VisibilityLevel::PUBLIC] | false + [Gitlab::VisibilityLevel::PUBLIC, Gitlab::VisibilityLevel::INTERNAL] | false + Gitlab::VisibilityLevel.values | true + end + + with_them do + before do + allow(helper).to receive(:current_user) { user } + allow(Gitlab::CurrentSettings.current_application_settings).to receive(:restricted_visibility_levels) { restricted_visibility_levels } + end + + it { is_expected.to eq(expected) } + end + end end |