diff options
author | Mike Greiling <mike@pixelcog.com> | 2018-01-22 15:33:54 -0600 |
---|---|---|
committer | Mike Greiling <mike@pixelcog.com> | 2018-01-22 15:33:54 -0600 |
commit | 96862096f10f3e80e30fe29b4a3e216a9af4d62d (patch) | |
tree | bf214358db49fd99b497b5e1607443342b4aae39 | |
parent | 003f140ce775ab4594a64dfc985b36078c7d2d81 (diff) | |
download | gitlab-ce-96862096f10f3e80e30fe29b4a3e216a9af4d62d.tar.gz |
add test to can_change_visibility_level? method
-rw-r--r-- | spec/helpers/projects_helper_spec.rb | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb index ede9d232efd..434df5d2849 100644 --- a/spec/helpers/projects_helper_spec.rb +++ b/spec/helpers/projects_helper_spec.rb @@ -1,6 +1,8 @@ require 'spec_helper' describe ProjectsHelper do + include ProjectForksHelper + describe "#project_status_css_class" do it "returns appropriate class" do expect(project_status_css_class("started")).to eq("active") @@ -10,9 +12,9 @@ describe ProjectsHelper do end describe "can_change_visibility_level?" do - let(:project) { create(:project, :repository) } + let(:project) { create(:project) } let(:user) { create(:project_member, :reporter, user: create(:user), project: project).user } - let(:fork_project) { Projects::ForkService.new(project, user).execute } + let(:forked_project) { fork_project(project, user) } it "returns false if there are no appropriate permissions" do allow(helper).to receive(:can?) { false } @@ -26,13 +28,21 @@ describe ProjectsHelper do expect(helper.can_change_visibility_level?(project, user)).to be_truthy end + it 'allows visibility level to be changed if the project is forked' do + allow(helper).to receive(:can?).with(user, :change_visibility_level, project) { true } + project.update! visibility_level: Gitlab::VisibilityLevel::PRIVATE + fork_project(project) + + expect(helper.can_change_visibility_level?(project, user)).to be_truthy + end + context "forks" do it "returns false if there are permissions and origin project is PRIVATE" do allow(helper).to receive(:can?) { true } project.update visibility_level: Gitlab::VisibilityLevel::PRIVATE - expect(helper.can_change_visibility_level?(fork_project, user)).to be_falsey + expect(helper.can_change_visibility_level?(forked_project, user)).to be_falsey end it "returns true if there are permissions and origin project is INTERNAL" do @@ -40,7 +50,7 @@ describe ProjectsHelper do project.update visibility_level: Gitlab::VisibilityLevel::INTERNAL - expect(helper.can_change_visibility_level?(fork_project, user)).to be_truthy + expect(helper.can_change_visibility_level?(forked_project, user)).to be_truthy end end end |