From feeb489302dcf82e0e1f7e014c34824d52f8a882 Mon Sep 17 00:00:00 2001
From: Phil Hughes <me@iamphill.com>
Date: Mon, 18 Jul 2016 14:21:30 +0100
Subject: [PATCH] Added spec tests for merge request form including from forked
 project

---
 spec/features/merge_requests/form_spec.rb | 87 +++++++++++++++++++++++
 1 file changed, 87 insertions(+)
 create mode 100644 spec/features/merge_requests/form_spec.rb

diff --git a/spec/features/merge_requests/form_spec.rb b/spec/features/merge_requests/form_spec.rb
new file mode 100644
index 00000000000..8da33b0f3c3
--- /dev/null
+++ b/spec/features/merge_requests/form_spec.rb
@@ -0,0 +1,87 @@
+require 'rails_helper'
+
+describe 'New/edit merge request', feature: true, js: true do
+  let!(:project)   { create(:project, visibility_level: Gitlab::VisibilityLevel::PUBLIC) }
+  let(:fork_project) { create(:project, forked_from_project: project) }
+  let!(:user)      { create(:user)}
+  let!(:milestone) { create(:milestone, project: project) }
+  let!(:label)     { create(:label, project: project) }
+  let!(:label2)    { create(:label, project: project) }
+
+  before do
+    project.team << [user, :master]
+  end
+
+  context 'owned projects' do
+    before do
+      merge_request = create(:merge_request,
+                               source_project: project,
+                               target_project: project,
+                               source_branch: 'fix',
+                               target_branch: 'master'
+                              )
+
+      login_as(user)
+
+      visit edit_namespace_project_merge_request_path(project.namespace, project, merge_request)
+    end
+
+    it 'should update merge request' do
+      update_merge_request
+    end
+  end
+
+  context 'forked project' do
+    before do
+      fork_project.team << [user, :master]
+
+      merge_request = create(:merge_request,
+                               source_project: fork_project,
+                               target_project: project,
+                               source_branch: 'fix',
+                               target_branch: 'master'
+                              )
+
+      login_as(user)
+
+      visit edit_namespace_project_merge_request_path(project.namespace, project, merge_request)
+    end
+
+    it 'should update merge request' do
+      update_merge_request
+    end
+  end
+
+  def update_merge_request
+    click_button 'Assignee'
+    click_link user.name
+
+    page.find '.js-assignee-search' do
+      expect(page).to have_content user.name
+    end
+
+    click_button 'Milestone'
+    click_link milestone.title
+
+    page.find '.js-milestone-select' do
+      expect(page).to have_content milestone.title
+    end
+
+    click_button 'Labels'
+    click_link label.title
+    click_link label2.title
+
+    page.find '.js-label-select' do
+      expect(page).to have_content label2.title
+    end
+
+    click_button 'Save changes'
+
+    page.find '.issuable-sidebar' do
+      expect(page).to have_content user.name
+      expect(page).to have_content milestone.title
+      expect(page).to have_content label.title
+      expect(page).to have_content label2.title
+    end
+  end
+end
-- 
GitLab