project_merge_requests.rb 5.8 KB
Newer Older
1
class ProjectMergeRequests < Spinach::FeatureSteps
N
Nihad Abbasov 已提交
2 3 4 5
  include SharedAuthentication
  include SharedProject
  include SharedNote
  include SharedPaths
6
  include SharedMarkdown
N
Nihad Abbasov 已提交
7

8
  step 'I click link "New Merge Request"' do
R
Riyad Preukschas 已提交
9
    click_link "New Merge Request"
10 11
  end

12
  step 'I click link "Bug NS-04"' do
R
Riyad Preukschas 已提交
13 14 15
    click_link "Bug NS-04"
  end

16
  step 'I click link "All"' do
R
Riyad Preukschas 已提交
17
    click_link "All"
18 19
  end

20
  step 'I click link "Closed"' do
21 22 23
    click_link "Closed"
  end

24
  step 'I should see merge request "Wiki Feature"' do
25 26 27
    within '.merge-request' do
      page.should have_content "Wiki Feature"
    end
28 29
  end

30
  step 'I should see closed merge request "Bug NS-04"' do
S
skv 已提交
31
    merge_request = MergeRequest.find_by!(title: "Bug NS-04")
32
    merge_request.closed?.should be_true
R
Riyad Preukschas 已提交
33
    page.should have_content "Closed by"
34 35
  end

36
  step 'I should see merge request "Bug NS-04"' do
R
Riyad Preukschas 已提交
37
    page.should have_content "Bug NS-04"
38 39
  end

40
  step 'I should see "Bug NS-04" in merge requests' do
R
Riyad Preukschas 已提交
41
    page.should have_content "Bug NS-04"
42 43
  end

44
  step 'I should see "Feature NS-03" in merge requests' do
R
Riyad Preukschas 已提交
45
    page.should have_content "Feature NS-03"
46 47
  end

48
  step 'I should not see "Feature NS-03" in merge requests' do
R
Riyad Preukschas 已提交
49
    page.should_not have_content "Feature NS-03"
50 51
  end

R
Riyad Preukschas 已提交
52

53
  step 'I should not see "Bug NS-04" in merge requests' do
R
Riyad Preukschas 已提交
54
    page.should_not have_content "Bug NS-04"
55 56
  end

57
  step 'I click link "Close"' do
58 59 60
    within '.page-title' do
      click_link "Close"
    end
61 62
  end

63
  step 'I submit new merge request "Wiki Feature"' do
64 65 66
    fill_in "merge_request_title", with: "Wiki Feature"
    select "master", from: "merge_request_source_branch"
    select "notes_refactoring", from: "merge_request_target_branch"
67
    click_button "Submit merge request"
68 69
  end

70
  step 'project "Shop" have "Bug NS-04" open merge request' do
A
Andrew8xx8 已提交
71
    create(:merge_request,
R
Riyad Preukschas 已提交
72
           title: "Bug NS-04",
I
Izaak Alpert 已提交
73 74
           source_project: project,
           target_project: project,
D
Dmitriy Zaporozhets 已提交
75 76
           source_branch: 'stable',
           target_branch: 'master',
77 78 79
           author: project.users.first,
           description: "# Description header"
          )
R
Riyad Preukschas 已提交
80 81
  end

82
  step 'project "Shop" have "Bug NS-05" open merge request with diffs inside' do
R
Riyad Preukschas 已提交
83 84
    create(:merge_request_with_diffs,
           title: "Bug NS-05",
I
Izaak Alpert 已提交
85 86
           source_project: project,
           target_project: project,
R
Riyad Preukschas 已提交
87
           author: project.users.first)
88 89
  end

90
  step 'project "Shop" have "Feature NS-03" closed merge request' do
A
Andrew8xx8 已提交
91
    create(:closed_merge_request,
R
Riyad Preukschas 已提交
92
           title: "Feature NS-03",
I
Izaak Alpert 已提交
93 94
           source_project: project,
           target_project: project,
A
Andrew8xx8 已提交
95
           author: project.users.first)
R
Riyad Preukschas 已提交
96 97
  end

98
  step 'I switch to the diff tab' do
99
    visit diffs_project_merge_request_path(project, merge_request)
R
Riyad Preukschas 已提交
100 101
  end

102
  step 'I switch to the merge request\'s comments tab' do
103
    visit project_merge_request_path(project, merge_request)
R
Riyad Preukschas 已提交
104 105
  end

106
  step 'I click on the first commit in the merge request' do
D
Dmitriy Zaporozhets 已提交
107 108 109
    within '.first-commits' do
      click_link merge_request.commits.first.short_id(8)
    end
R
Riyad Preukschas 已提交
110 111
  end

112
  step 'I leave a comment on the diff page' do
113
    init_diff_note
D
Dmitriy Zaporozhets 已提交
114 115
    leave_comment "One comment to rule them all"
  end
D
Dmitriy Zaporozhets 已提交
116

D
Dmitriy Zaporozhets 已提交
117 118 119
  step 'I leave a comment on the diff page in commit' do
    find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185"]').click
    leave_comment "One comment to rule them all"
R
Riyad Preukschas 已提交
120 121
  end

122
  step 'I leave a comment like "Line is wrong" on line 185 of the first file' do
123
    init_diff_note
D
Dmitriy Zaporozhets 已提交
124 125
    leave_comment "Line is wrong"
  end
R
Riyad Preukschas 已提交
126

D
Dmitriy Zaporozhets 已提交
127 128 129
  step 'I leave a comment like "Line is wrong" on line 185 of the first file in commit' do
    find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185"]').click
    leave_comment "Line is wrong"
R
Riyad Preukschas 已提交
130 131
  end

132
  step 'I should see a discussion has started on line 185' do
R
Riyad Preukschas 已提交
133
    page.should have_content "#{current_user.name} started a discussion on this merge request diff"
D
Dmitriy Zaporozhets 已提交
134
    page.should have_content "app/assets/stylesheets/tree.scss:L185"
R
Riyad Preukschas 已提交
135 136 137
    page.should have_content "Line is wrong"
  end

D
Dmitriy Zaporozhets 已提交
138
  step 'I should see a discussion has started on commit b1e6a9dbf1:L185' do
R
Riyad Preukschas 已提交
139
    page.should have_content "#{current_user.name} started a discussion on commit"
D
Dmitriy Zaporozhets 已提交
140
    page.should have_content "app/assets/stylesheets/tree.scss:L185"
R
Riyad Preukschas 已提交
141 142 143
    page.should have_content "Line is wrong"
  end

D
Dmitriy Zaporozhets 已提交
144 145
  step 'I should see a discussion has started on commit b1e6a9dbf1' do
    page.should have_content "#{current_user.name} started a discussion on commit"
R
Riyad Preukschas 已提交
146
    page.should have_content "One comment to rule them all"
D
Dmitriy Zaporozhets 已提交
147
    page.should have_content "app/assets/stylesheets/tree.scss:L185"
148
  end
149

150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
  step 'merge request is mergeable' do
    page.should have_content 'You can accept this request automatically'
  end

  step 'I modify merge commit message' do
    find('.modify-merge-commit-link').click
    fill_in 'merge_commit_message', with: "wow such merge"
  end

  step 'merge request "Bug NS-05" is mergeable' do
    merge_request.mark_as_mergeable
  end

  step 'I accept this merge request' do
    click_button "Accept Merge Request"
  end

  step 'I should see merged request' do
168
    within '.issue-box' do
169 170 171 172
      page.should have_content "Merged"
    end
  end

D
Dmitriy Zaporozhets 已提交
173 174 175 176 177 178 179 180 181 182 183 184
  step 'I click link "Reopen"' do
    within '.page-title' do
      click_link "Reopen"
    end
  end

  step 'I should see reopened merge request "Bug NS-04"' do
    within '.state-label' do
      page.should have_content "Open"
    end
  end

185
  def project
S
skv 已提交
186
    @project ||= Project.find_by!(name: "Shop")
187 188 189
  end

  def merge_request
S
skv 已提交
190
    @merge_request ||= MergeRequest.find_by!(title: "Bug NS-05")
191
  end
192 193

  def init_diff_note
D
Dmitriy Zaporozhets 已提交
194 195 196 197 198 199 200 201 202 203 204 205
    find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_172_185"]').click
  end

  def leave_comment(message)
    within(".js-discussion-note-form") do
      fill_in "note_note", with: message
      click_button "Add Comment"
    end

    within ".note-text" do
      page.should have_content message
    end
206
  end
207
end