Commit bbef8bb5896d8858bf91692bdd5aa9236472a885
1 parent
216d5e2c
Exists in
master
and in
4 other branches
MR on fork validation error
Wasn't setting fields so validations would fail Change-Id: I0363c57bf6c8b9937cc1b4140d09071d7c5168c2
Showing
4 changed files
with
41 additions
and
17 deletions
Show diff stats
app/controllers/projects/merge_requests_controller.rb
... | ... | @@ -70,7 +70,9 @@ class Projects::MergeRequestsController < Projects::ApplicationController |
70 | 70 | @merge_request.reload_code |
71 | 71 | redirect_to [@merge_request.target_project, @merge_request], notice: 'Merge request was successfully created.' |
72 | 72 | else |
73 | - render "new" | |
73 | + @source_project = @merge_request.source_project | |
74 | + @target_project = @merge_request.target_project | |
75 | + render action: "new" | |
74 | 76 | end |
75 | 77 | end |
76 | 78 | |
... | ... | @@ -118,7 +120,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController |
118 | 120 | |
119 | 121 | def update_branches |
120 | 122 | @target_project = selected_target_project |
121 | - @target_branches = (@target_project.repository.branch_names).unshift("Select branch") | |
123 | + @target_branches = @target_project.repository.branch_names | |
122 | 124 | @target_branches |
123 | 125 | end |
124 | 126 | ... | ... |
app/views/projects/merge_requests/_form.html.haml
... | ... | @@ -64,21 +64,19 @@ |
64 | 64 | :javascript |
65 | 65 | disableButtonIfEmptyField("#merge_request_title", ".btn-save"); |
66 | 66 | |
67 | - var source_branch = $("#merge_request_source_branch") | |
68 | - , target_branch = $("#merge_request_target_branch") | |
69 | - , target_project = $("#merge_request_target_project_id"); | |
67 | + var source_branch = $("#merge_request_source_branch") | |
68 | + , target_branch = $("#merge_request_target_branch") | |
69 | + , target_project = $("#merge_request_target_project_id"); | |
70 | 70 | |
71 | - $.get("#{branch_from_project_merge_requests_path(@source_project)}", {ref: source_branch.val() }); | |
72 | - $.get("#{branch_to_project_merge_requests_path(@source_project)}", {target_project_id: target_project.val(),ref: target_branch.val() }); | |
73 | - | |
74 | - target_project.live("change", function() { | |
75 | - $.get("#{update_branches_project_merge_requests_path(@source_project)}", {target_project_id: $(this).val() }); | |
76 | - }); | |
77 | - source_branch.live("change", function() { | |
78 | - $.get("#{branch_from_project_merge_requests_path(@source_project)}", {ref: $(this).val() }); | |
79 | - }); | |
80 | - target_branch.live("change", function() { | |
81 | - $.get("#{branch_to_project_merge_requests_path(@source_project)}", {target_project_id: target_project.val(),ref: $(this).val() }); | |
82 | - }); | |
71 | + $.get("#{branch_from_project_merge_requests_path(@source_project)}", {ref: source_branch.val() }); | |
72 | + $.get("#{branch_to_project_merge_requests_path(@source_project)}", {target_project_id: target_project.val(),ref: target_branch.val() }); | |
83 | 73 | |
74 | + target_project.live("change", function() { | |
75 | + $.get("#{update_branches_project_merge_requests_path(@source_project)}", {target_project_id: $(this).val() }); | |
76 | + }); | |
77 | + source_branch.live("change", function() { | |
78 | + $.get("#{branch_from_project_merge_requests_path(@source_project)}", {ref: $(this).val() }); | |
79 | + }); | |
80 | + target_branch.live("change", function() { | |
81 | + $.get("#{branch_to_project_merge_requests_path(@source_project)}", {target_project_id: target_project.val(),ref: $(this).val() }); | |
84 | 82 | }); |
85 | 83 | \ No newline at end of file | ... | ... |
features/project/forked_merge_requests.feature
... | ... | @@ -41,3 +41,10 @@ Feature: Project Forked Merge Requests |
41 | 41 | Then I see the edit page prefilled for "Merge Request On Forked Project" |
42 | 42 | |
43 | 43 | |
44 | + @javascript | |
45 | + Scenario: I cannot submit an invalid merge request | |
46 | + Given I visit project "Forked Shop" merge requests page | |
47 | + And I click link "New Merge Request" | |
48 | + And I fill out an invalid "Merge Request On Forked Project" merge request | |
49 | + And I submit the merge request | |
50 | + Then I should see validation errors | |
44 | 51 | \ No newline at end of file | ... | ... |
features/steps/project/project_forked_merge_requests.rb
... | ... | @@ -152,6 +152,23 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps |
152 | 152 | end |
153 | 153 | |
154 | 154 | |
155 | + And 'I fill out an invalid "Merge Request On Forked Project" merge request' do | |
156 | + #If this isn't filled in the rest of the validations won't be triggered | |
157 | + fill_in "merge_request_title", with: "Merge Request On Forked Project" | |
158 | + find(:select, "merge_request_source_project_id", {}).value.should == @forked_project.id.to_s | |
159 | + find(:select, "merge_request_target_project_id", {}).value.should == @forked_project.id.to_s | |
160 | + find(:select, "merge_request_source_branch", {}).value.should == "" | |
161 | + find(:select, "merge_request_target_branch", {}).value.should == "" | |
162 | + end | |
163 | + | |
164 | + | |
165 | + Then 'I should see validation errors' do | |
166 | + page.should have_content "Source branch can't be blank" | |
167 | + page.should have_content "Target branch can't be blank" | |
168 | + page.should have_content "Branch conflict You can not use same project/branch for source and target" | |
169 | + end | |
170 | + | |
171 | + | |
155 | 172 | def project |
156 | 173 | @project ||= Project.find_by_name!("Shop") |
157 | 174 | end | ... | ... |