2016-11-03 12:29:30 +05:30
require 'rails_helper'
2017-09-10 17:25:29 +05:30
feature 'Merge request issue assignment' , js : true do
2016-11-03 12:29:30 +05:30
let ( :user ) { create ( :user ) }
2017-09-10 17:25:29 +05:30
let ( :project ) { create ( :project , :public , :repository ) }
2016-11-03 12:29:30 +05:30
let ( :issue1 ) { create ( :issue , project : project ) }
let ( :issue2 ) { create ( :issue , project : project ) }
let ( :merge_request ) { create ( :merge_request , :simple , source_project : project , author : user , description : " fixes #{ issue1 . to_reference } and #{ issue2 . to_reference } " ) }
let ( :service ) { MergeRequests :: AssignIssuesService . new ( merge_request , user , user , project ) }
before do
project . team << [ user , :developer ]
end
def visit_merge_request ( current_user = nil )
2017-09-10 17:25:29 +05:30
sign_in ( current_user || user )
visit project_merge_request_path ( project , merge_request )
2016-11-03 12:29:30 +05:30
end
context 'logged in as author' do
2017-08-17 22:00:37 +05:30
it 'updates related issues' do
2016-11-03 12:29:30 +05:30
visit_merge_request
click_link " Assign yourself to these issues "
expect ( page ) . to have_content " 2 issues have been assigned to you "
end
it 'returns user to the merge request' do
visit_merge_request
click_link " Assign yourself to these issues "
expect ( page ) . to have_content merge_request . description
end
it " doesn't display if related issues are already assigned " do
2017-08-17 22:00:37 +05:30
[ issue1 , issue2 ] . each { | issue | issue . update! ( assignees : [ user ] ) }
2016-11-03 12:29:30 +05:30
visit_merge_request
expect ( page ) . not_to have_content " Assign yourself "
end
end
context 'not MR author' do
it " doesn't not show assignment link " do
visit_merge_request ( create ( :user ) )
expect ( page ) . not_to have_content " Assign yourself "
end
end
end