Commit 09112dbb1df2669b0042d6d785a5469a9855ac20

Authored by Izaak Alpert
1 parent bbef8bb5

Rebase on master

Trying to retrigger travis
Change-Id: Ifd86fb4c6b2791ad176230254fbf69a9ade979fb
app/models/merge_request.rb
@@ -105,11 +105,11 @@ class MergeRequest < ActiveRecord::Base @@ -105,11 +105,11 @@ class MergeRequest < ActiveRecord::Base
105 end 105 end
106 106
107 if opened? || reopened? 107 if opened? || reopened?
108 - similar_mrs = self.project.merge_requests.where(source_branch: source_branch, target_branch: target_branch).opened 108 + similar_mrs = self.target_project.merge_requests.where(source_branch: source_branch, target_branch: target_branch, source_project_id: source_project.id).opened
109 similar_mrs = similar_mrs.where('id not in (?)', self.id) if self.id 109 similar_mrs = similar_mrs.where('id not in (?)', self.id) if self.id
110 110
111 if similar_mrs.any? 111 if similar_mrs.any?
112 - errors.add :base, "There is already an open merge request for this branches" 112 + errors.add :base, "Cannot Create: This merge request already exists: #{similar_mrs.pluck(:title)}"
113 end 113 end
114 end 114 end
115 end 115 end
app/observers/merge_request_observer.rb
1 class MergeRequestObserver < ActivityObserver 1 class MergeRequestObserver < ActivityObserver
2 observe :merge_request 2 observe :merge_request
3 - cattr_accessor :current_user  
4 3
5 def after_create(merge_request) 4 def after_create(merge_request)
6 event_author_id = merge_request.author_id 5 event_author_id = merge_request.author_id
features/steps/project/project_merge_requests.rb
@@ -57,11 +57,17 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps @@ -57,11 +57,17 @@ class ProjectMergeRequests &lt; Spinach::FeatureSteps
57 end 57 end
58 58
59 And 'I submit new merge request "Wiki Feature"' do 59 And 'I submit new merge request "Wiki Feature"' do
60 - fill_in "merge_request_title", :with => "Wiki Feature" 60 + #this must come first, so that the target branch is set by the time the "select" for "notes_refactoring" is executed
61 select project.path_with_namespace, :from => "merge_request_target_project_id" 61 select project.path_with_namespace, :from => "merge_request_target_project_id"
  62 + fill_in "merge_request_title", :with => "Wiki Feature"
62 select "master", :from => "merge_request_source_branch" 63 select "master", :from => "merge_request_source_branch"
63 - select "stable", :from => "merge_request_target_branch"  
64 - find(:select, "merge_request_target_branch", {}).find(:option, "stable", {}).value.should == "stable" 64 + find(:select, "merge_request_target_project_id", {}).value.should == project.id.to_s
  65 + find(:select, "merge_request_source_project_id", {}).value.should == project.id.to_s
  66 +
  67 + #using "notes_refactoring" because "Bug NS-04" uses master/stable, this will fail merge_request validation if the branches are the same
  68 + find(:select, "merge_request_target_branch", {}).find(:option, "notes_refactoring", {}).value.should == "notes_refactoring"
  69 + select "notes_refactoring", :from => "merge_request_target_branch"
  70 +
65 click_button "Submit merge request" 71 click_button "Submit merge request"
66 end 72 end
67 73
spec/contexts/filter_context_spec.rb
@@ -9,7 +9,7 @@ describe FilterContext do @@ -9,7 +9,7 @@ describe FilterContext do
9 let(:merge_request1) { create(:merge_request, author_id: user.id, source_project: project1, target_project: project2) } 9 let(:merge_request1) { create(:merge_request, author_id: user.id, source_project: project1, target_project: project2) }
10 let(:merge_request2) { create(:merge_request, author_id: user.id, source_project: project2, target_project: project1) } 10 let(:merge_request2) { create(:merge_request, author_id: user.id, source_project: project2, target_project: project1) }
11 let(:merge_request3) { create(:merge_request, author_id: user.id, source_project: project2, target_project: project2) } 11 let(:merge_request3) { create(:merge_request, author_id: user.id, source_project: project2, target_project: project2) }
12 - let(:merge_request4) { create(:merge_request, author_id: user2.id, source_project: project2, target_project: project2) } 12 + let(:merge_request4) { create(:merge_request, author_id: user2.id, source_project: project2, target_project: project2, target_branch:"notes_refactoring") }
13 let(:issue1) { create(:issue, assignee_id: user.id, project: project1) } 13 let(:issue1) { create(:issue, assignee_id: user.id, project: project1) }
14 let(:issue2) { create(:issue, assignee_id: user.id, project: project2) } 14 let(:issue2) { create(:issue, assignee_id: user.id, project: project2) }
15 let(:issue3) { create(:issue, assignee_id: user2.id, project: project2) } 15 let(:issue3) { create(:issue, assignee_id: user2.id, project: project2) }
spec/services/notification_service_spec.rb
@@ -232,11 +232,16 @@ describe NotificationService do @@ -232,11 +232,16 @@ describe NotificationService do
232 end 232 end
233 end 233 end
234 234
  235 + let(:u_watcher) { create(:user, notification_level: Notification::N_WATCH) }
  236 + let(:u_participating) { create(:user, notification_level: Notification::N_PARTICIPATING) }
  237 + let(:u_disabled) { create(:user, notification_level: Notification::N_DISABLED) }
  238 + let(:u_mentioned) { create(:user, username: 'mention', notification_level: Notification::N_WATCH) }
  239 +
235 def build_team(project) 240 def build_team(project)
236 - @u_watcher = create(:user, notification_level: Notification::N_WATCH)  
237 - @u_participating = create(:user, notification_level: Notification::N_PARTICIPATING)  
238 - @u_disabled = create(:user, notification_level: Notification::N_DISABLED)  
239 - @u_mentioned = create(:user, username: 'mention', notification_level: Notification::N_WATCH) 241 + @u_watcher = u_watcher
  242 + @u_participating = u_participating
  243 + @u_disabled = u_disabled
  244 + @u_mentioned = u_mentioned
240 245
241 project.team << [@u_watcher, :master] 246 project.team << [@u_watcher, :master]
242 project.team << [@u_participating, :master] 247 project.team << [@u_participating, :master]