Checks if deleting forked project closed all open merge requests
This commit is contained in:
parent
8c77a1fb25
commit
09cded29d8
|
|
@ -429,7 +429,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
||||||
|
|
||||||
def validates_merge_request
|
def validates_merge_request
|
||||||
# If source project was removed (Ex. mr from fork to origin)
|
# If source project was removed (Ex. mr from fork to origin)
|
||||||
return invalid_mr unless @merge_request.source_project
|
# return invalid_mr unless @merge_request.source_project
|
||||||
|
|
||||||
# Show git not found page
|
# Show git not found page
|
||||||
# if there is no saved commits between source & target branch
|
# if there is no saved commits between source & target branch
|
||||||
|
|
@ -438,7 +438,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController
|
||||||
return invalid_mr unless @merge_request.target_branch_exists?
|
return invalid_mr unless @merge_request.target_branch_exists?
|
||||||
|
|
||||||
# or if source branch doesn't exist
|
# or if source branch doesn't exist
|
||||||
return invalid_mr unless @merge_request.source_branch_exists?
|
# return invalid_mr unless @merge_request.source_branch_exists?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -313,7 +313,7 @@ class MergeRequest < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def closed_without_fork?
|
def closed_without_fork?
|
||||||
closed? && forked_source_project_missing?
|
closed? && (forked_source_project_missing? || !source_project)
|
||||||
end
|
end
|
||||||
|
|
||||||
def forked_source_project_missing?
|
def forked_source_project_missing?
|
||||||
|
|
|
||||||
|
|
@ -192,10 +192,12 @@ describe ProjectsController do
|
||||||
end
|
end
|
||||||
|
|
||||||
it "closes all related merge requests" do
|
it "closes all related merge requests" do
|
||||||
fork_project.destroy
|
project.merge_requests << merge_request
|
||||||
|
sign_in(admin)
|
||||||
|
|
||||||
expect(fork_project.destroyed?).to be_truthy
|
delete :destroy, namespace_id: fork_project.namespace.path, id: fork_project.path
|
||||||
expect(merge_request.state).to eq('closed')
|
|
||||||
|
expect(merge_request.reload.state).to eq('closed')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue