From 0a013adc4da162512b75d5ed20c338392af7577b Mon Sep 17 00:00:00 2001 From: Izaak Alpert Date: Wed, 17 Jul 2013 17:40:40 -0400 Subject: [PATCH] Fix an issue with edits sending user back to @source_project --- app/controllers/projects/merge_requests_controller.rb | 4 +--- app/views/projects/merge_requests/_form.html.haml | 2 +- features/project/forked_merge_requests.feature | 3 +++ features/steps/project/project_forked_merge_requests.rb | 22 ++++++++++++++++++++++ 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index 441fc85..dd1f8ce 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -54,10 +54,8 @@ class Projects::MergeRequestsController < Projects::ApplicationController end def create - @merge_request = @project.merge_requests.new(params[:merge_request]) + @merge_request = MergeRequest.new(params[:merge_request]) @merge_request.author = current_user - @merge_request.source_project_id = params[:merge_request][:source_project_id].to_i - @merge_request.target_project_id = params[:merge_request][:target_project_id].to_i @target_branches ||= [] if @merge_request.save @merge_request.reload_code diff --git a/app/views/projects/merge_requests/_form.html.haml b/app/views/projects/merge_requests/_form.html.haml index a4588a2..6e4e475 100644 --- a/app/views/projects/merge_requests/_form.html.haml +++ b/app/views/projects/merge_requests/_form.html.haml @@ -1,4 +1,4 @@ -= form_for [@source_project, @merge_request], html: { class: "#{controller.action_name}-merge-request form-horizontal" } do |f| += form_for [@project, @merge_request], html: { class: "#{controller.action_name}-merge-request form-horizontal" } do |f| -if @merge_request.errors.any? .alert.alert-error %ul diff --git a/features/project/forked_merge_requests.feature b/features/project/forked_merge_requests.feature index 34e7cb5..245515c 100644 --- a/features/project/forked_merge_requests.feature +++ b/features/project/forked_merge_requests.feature @@ -37,6 +37,9 @@ Feature: Project Forked Merge Requests And I should see merge request "Merge Request On Forked Project" And I click link edit "Merge Request On Forked Project" Then I see the edit page prefilled for "Merge Request On Forked Project" + And I update the merge request title + And I save the merge request + Then I should see the edited merge request @javascript Scenario: I cannot submit an invalid merge request diff --git a/features/steps/project/project_forked_merge_requests.rb b/features/steps/project/project_forked_merge_requests.rb index 16cb628..d6cad1b 100644 --- a/features/steps/project/project_forked_merge_requests.rb +++ b/features/steps/project/project_forked_merge_requests.rb @@ -100,6 +100,28 @@ class ProjectForkedMergeRequests < Spinach::FeatureSteps verify_commit_link(".mr_source_commit",@forked_project) end + And 'I update the merge request title' do + fill_in "merge_request_title", with: "An Edited Forked Merge Request" + end + + And 'I save the merge request' do + click_button "Save changes" + end + + Then 'I should see the edited merge request' do + page.should have_content "An Edited Forked Merge Request" + @project.merge_requests.size.should >= 1 + @merge_request = @project.merge_requests.last + current_path.should == project_merge_request_path(@project, @merge_request) + @merge_request.source_project.should == @forked_project + @merge_request.source_branch.should == "master" + @merge_request.target_branch.should == "stable" + page.should have_content @forked_project.path_with_namespace + page.should have_content @project.path_with_namespace + page.should have_content @merge_request.source_branch + page.should have_content @merge_request.target_branch + end + Then 'I should see last push widget' do page.should have_content "You pushed to new_design" page.should have_link "Create Merge Request" -- libgit2 0.21.2