Commit 09112dbb1df2669b0042d6d785a5469a9855ac20
1 parent
bbef8bb5
Exists in
master
and in
4 other branches
Rebase on master
Trying to retrigger travis Change-Id: Ifd86fb4c6b2791ad176230254fbf69a9ade979fb
Showing
5 changed files
with
21 additions
and
11 deletions
Show diff stats
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 < Spinach::FeatureSteps | @@ -57,11 +57,17 @@ class ProjectMergeRequests < 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] |