summaryrefslogtreecommitdiff
path: root/features/steps/project/issues/referenced_merge_requests.rb
blob: 3b1f3620df9cb9b0691d2c8b6725fab526f11742 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
class Spinach::Features::ProjectIssuesReferencedMergeRequests < Spinach::FeatureSteps
  include SharedAuthentication
  include SharedIssuable
  include SharedProject
  include SharedUser

  step 'project "Community" has "Public Issue 01" open issue' do
    project = Project.find_by(name: 'Community')
    create(:issue,
           title: 'Public Issue 01',
           project: project,
           author: project.users.first,
           description: '# Description header'
          )
  end

  step 'project "Private Library" has "Fix NS-01" open merge request' do
    project = Project.find_by(name: 'Private Library')
    create(:merge_request,
           title: 'Fix NS-01',
           source_project: project,
           target_project: project,
           source_branch: 'fix',
           target_branch: 'master',
           author: project.users.first,
           description: '# Description header'
          )
  end

  step 'I leave a comment referencing issue "Public Issue 01" from project "Private Library"' do
    project = Project.find_by(name: 'Private Library')
    issue = Issue.find_by!(title: 'Public Issue 01')

    page.within(".js-main-target-form") do
      fill_in "note[note]", with: "##{issue.to_reference(project)}"
      click_button "Add Comment"
    end
  end

  step 'I visit merge request page "Fix NS-01"' do
    mr = MergeRequest.find_by(title: "Fix NS-01")
    visit namespace_project_merge_request_path(mr.target_project.namespace, mr.target_project, mr)
  end

  step 'I visit issue page "Public Issue 01"' do
    issue = Issue.find_by(title: "Public Issue 01")
    visit namespace_project_issue_path(issue.project.namespace, issue.project, issue)
  end

  step 'I should not see any related merge requests' do
    page.within '.issue-details' do
      expect(page).not_to have_content('.merge-requests')
    end
  end

  step 'I should see the "Fix NS-01" related merge request' do
    page.within '.merge-requests' do
      expect(page).to have_content("1 Related Merge Request")
      expect(page).to have_content("Fix NS-01")
    end
  end

end