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 | ||||
|     # 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 | ||||
|     # 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? | ||||
| 
 | ||||
|       # 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 | ||||
| 
 | ||||
|  |  | |||
|  | @ -313,7 +313,7 @@ class MergeRequest < ActiveRecord::Base | |||
|   end | ||||
| 
 | ||||
|   def closed_without_fork? | ||||
|     closed? && forked_source_project_missing? | ||||
|     closed? && (forked_source_project_missing? || !source_project) | ||||
|   end | ||||
| 
 | ||||
|   def forked_source_project_missing? | ||||
|  |  | |||
|  | @ -192,10 +192,12 @@ describe ProjectsController do | |||
|       end | ||||
| 
 | ||||
|       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 | ||||
|         expect(merge_request.state).to eq('closed') | ||||
|         delete :destroy, namespace_id: fork_project.namespace.path, id: fork_project.path | ||||
| 
 | ||||
|         expect(merge_request.reload.state).to eq('closed') | ||||
|       end | ||||
|     end | ||||
|   end | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue