From 003f140ce775ab4594a64dfc985b36078c7d2d81 Mon Sep 17 00:00:00 2001 From: Mike Greiling Date: Mon, 22 Jan 2018 14:48:24 -0600 Subject: ensure fork_source returns nil when project is the root fork, add tests --- spec/models/project_spec.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'spec') diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 987be8e8b46..4d10df410ab 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1951,6 +1951,10 @@ describe Project do expect(second_fork.fork_source).to eq(project) end + + it 'returns nil if it is the root of the fork network' do + expect(project.fork_source).to be_nil + end end describe '#lfs_storage_project' do -- cgit v1.2.1 From 96862096f10f3e80e30fe29b4a3e216a9af4d62d Mon Sep 17 00:00:00 2001 From: Mike Greiling Date: Mon, 22 Jan 2018 15:33:54 -0600 Subject: add test to can_change_visibility_level? method --- spec/helpers/projects_helper_spec.rb | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'spec') 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 -- cgit v1.2.1 From 2c1d7c09483948f764693f30cc070671a93f789f Mon Sep 17 00:00:00 2001 From: Mike Greiling Date: Mon, 22 Jan 2018 16:01:48 -0600 Subject: fix spacing and wrap method params in parens --- spec/helpers/projects_helper_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'spec') diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb index 434df5d2849..c0251bf7dc0 100644 --- a/spec/helpers/projects_helper_spec.rb +++ b/spec/helpers/projects_helper_spec.rb @@ -30,7 +30,7 @@ describe ProjectsHelper do 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 + project.update!(visibility_level: Gitlab::VisibilityLevel::PRIVATE) fork_project(project) expect(helper.can_change_visibility_level?(project, user)).to be_truthy @@ -40,7 +40,7 @@ describe ProjectsHelper 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 + project.update(visibility_level: Gitlab::VisibilityLevel::PRIVATE) expect(helper.can_change_visibility_level?(forked_project, user)).to be_falsey end @@ -48,7 +48,7 @@ describe ProjectsHelper do it "returns true if there are permissions and origin project is INTERNAL" do allow(helper).to receive(:can?) { true } - project.update visibility_level: Gitlab::VisibilityLevel::INTERNAL + project.update(visibility_level: Gitlab::VisibilityLevel::INTERNAL) expect(helper.can_change_visibility_level?(forked_project, user)).to be_truthy end -- cgit v1.2.1