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 | ... | ... |