From b1731adf4385b982348746564e7365b7b70e50fb Mon Sep 17 00:00:00 2001 From: James Lopez Date: Tue, 16 Feb 2016 16:40:36 +0100 Subject: workaround for forks with an invalid repo - avoid showing them in the list --- app/controllers/projects/forks_controller.rb | 4 +++- features/project/fork.feature | 7 +++++++ features/steps/project/fork.rb | 11 +++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) 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 -- cgit v1.2.1