summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2016-02-16 16:40:36 +0100
committerJames Lopez <james@jameslopez.es>2016-02-16 16:40:36 +0100
commitb1731adf4385b982348746564e7365b7b70e50fb (patch)
treed1a4fdec37f614657100f2e4d14e62e2826f47f4
parent3de6edd6041a725aaffba95603d4eb2912627d42 (diff)
downloadgitlab-ce-b1731adf4385b982348746564e7365b7b70e50fb.tar.gz
workaround for forks with an invalid repo - avoid showing them in the list
-rw-r--r--app/controllers/projects/forks_controller.rb4
-rw-r--r--features/project/fork.feature7
-rw-r--r--features/steps/project/fork.rb11
3 files changed, 21 insertions, 1 deletions
diff --git a/app/controllers/projects/forks_controller.rb b/app/controllers/projects/forks_controller.rb
index e61e01c4a59..045ac16599f 100644
--- a/app/controllers/projects/forks_controller.rb
+++ b/app/controllers/projects/forks_controller.rb
@@ -5,7 +5,9 @@ class Projects::ForksController < Projects::ApplicationController
def index
@sort = params[:sort] || 'id_desc'
- @all_forks = project.forks.includes(:creator).order_by(@sort)
+ @all_forks = project.forks.includes(:creator).order_by(@sort).reject do |project|
+ project.repository.raw_repository.nil?
+ end
@public_forks, @protected_forks = @all_forks.partition do |project|
can?(current_user, :read_project, project)
diff --git a/features/project/fork.feature b/features/project/fork.feature
index 12695204e47..5f55b64c4ac 100644
--- a/features/project/fork.feature
+++ b/features/project/fork.feature
@@ -32,6 +32,13 @@ Feature: Project Fork
And I visit the forks page of the "Shop" project
Then I should see my fork on the list
+ Scenario: Viewing forks of a Project that has no repo
+ Given I click link "Fork"
+ When I fork to my namespace
+ And I make forked repo invalid
+ And I visit the forks page of the "Shop" project
+ Then I should not see the invalid fork listed
+
Scenario: Viewing private forks of a Project
Given There is an existent fork of the "Shop" project
And I click link "Fork"
diff --git a/features/steps/project/fork.rb b/features/steps/project/fork.rb
index 5810276ced3..7e5160bae2f 100644
--- a/features/steps/project/fork.rb
+++ b/features/steps/project/fork.rb
@@ -62,6 +62,17 @@ class Spinach::Features::ProjectFork < Spinach::FeatureSteps
end
end
+ step 'I make forked repo invalid' do
+ project = @user.fork_of(@project)
+ project.path = 'test-crappy-path'
+ project.save!
+ end
+
+ step 'I should not see the invalid fork listed' do
+ project = @user.fork_of(@project)
+ expect(page).not_to have_content("#{project.namespace.human_name} / #{project.name}")
+ end
+
step 'There is an existent fork of the "Shop" project' do
user = create(:user, name: 'Mike')
@forked_project = Projects::ForkService.new(@project, user).execute