Commit 492dc82ced619206aeed7e3aaae393d85a4d3f40
Exists in
spb-stable
and in
3 other branches
Merge pull request #6557 from tsigo/faster-merge-request-features
Speed up features/notes_on_merge_requests_spec
Showing
4 changed files
with
33 additions
and
40 deletions
Show diff stats
spec/factories.rb
| ... | ... | @@ -158,6 +158,11 @@ FactoryGirl.define do |
| 158 | 158 | state :reopened |
| 159 | 159 | end |
| 160 | 160 | |
| 161 | + trait :simple do | |
| 162 | + source_branch "simple_merge_request" | |
| 163 | + target_branch "master" | |
| 164 | + end | |
| 165 | + | |
| 161 | 166 | factory :closed_merge_request, traits: [:closed] |
| 162 | 167 | factory :reopened_merge_request, traits: [:reopened] |
| 163 | 168 | factory :merge_request_with_diffs, traits: [:with_diffs] |
| ... | ... | @@ -173,7 +178,6 @@ FactoryGirl.define do |
| 173 | 178 | factory :note_on_issue, traits: [:on_issue], aliases: [:votable_note] |
| 174 | 179 | factory :note_on_merge_request, traits: [:on_merge_request] |
| 175 | 180 | factory :note_on_merge_request_diff, traits: [:on_merge_request, :on_diff] |
| 176 | - factory :note_on_merge_request_with_attachment, traits: [:on_merge_request, :with_attachment] | |
| 177 | 181 | |
| 178 | 182 | trait :on_commit do |
| 179 | 183 | project factory: :project | ... | ... |
spec/features/notes_on_merge_requests_spec.rb
| 1 | 1 | require 'spec_helper' |
| 2 | 2 | |
| 3 | 3 | describe "On a merge request", js: true do |
| 4 | - let!(:project) { create(:project) } | |
| 5 | - let!(:merge_request) { create(:merge_request, source_project: project, target_project: project) } | |
| 6 | - let!(:note) { create(:note_on_merge_request_with_attachment, project: project) } | |
| 4 | + let!(:merge_request) { create(:merge_request, :simple) } | |
| 5 | + let!(:project) { merge_request.source_project } | |
| 6 | + let!(:note) { create(:note_on_merge_request, :with_attachment, project: project) } | |
| 7 | 7 | |
| 8 | 8 | before do |
| 9 | - login_as :user | |
| 10 | - project.team << [@user, :master] | |
| 11 | - | |
| 9 | + login_as :admin | |
| 12 | 10 | visit project_merge_request_path(project, merge_request) |
| 13 | 11 | end |
| 14 | 12 | |
| ... | ... | @@ -134,22 +132,20 @@ describe "On a merge request", js: true do |
| 134 | 132 | end |
| 135 | 133 | end |
| 136 | 134 | |
| 137 | -describe "On a merge request diff", js: true, focus: true do | |
| 138 | - let!(:project) { create(:project) } | |
| 139 | - let!(:merge_request) { create(:merge_request_with_diffs, source_project: project, target_project: project) } | |
| 135 | +describe "On a merge request diff", js: true do | |
| 136 | + let(:merge_request) { create(:merge_request, :with_diffs, :simple) } | |
| 137 | + let(:project) { merge_request.source_project } | |
| 140 | 138 | |
| 141 | 139 | before do |
| 142 | - login_as :user | |
| 143 | - project.team << [@user, :master] | |
| 140 | + login_as :admin | |
| 144 | 141 | visit diffs_project_merge_request_path(project, merge_request) |
| 145 | 142 | end |
| 146 | 143 | |
| 147 | - | |
| 148 | 144 | subject { page } |
| 149 | 145 | |
| 150 | 146 | describe "when adding a note" do |
| 151 | 147 | before do |
| 152 | - find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_172_185"]').click | |
| 148 | + find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7"]').click | |
| 153 | 149 | end |
| 154 | 150 | |
| 155 | 151 | describe "the notes holder" do |
| ... | ... | @@ -160,13 +156,13 @@ describe "On a merge request diff", js: true, focus: true do |
| 160 | 156 | |
| 161 | 157 | describe "the note form" do |
| 162 | 158 | it "shouldn't add a second form for same row" do |
| 163 | - find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_172_185"]').click | |
| 159 | + find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7"]').click | |
| 164 | 160 | |
| 165 | - should have_css("tr[id='4735dfc552ad7bf15ca468adc3cad9d05b624490_172_185'] + .js-temp-notes-holder form", count: 1) | |
| 161 | + should have_css("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7'] + .js-temp-notes-holder form", count: 1) | |
| 166 | 162 | end |
| 167 | 163 | |
| 168 | 164 | it "should be removed when canceled" do |
| 169 | - within(".diff-file form[rel$='4735dfc552ad7bf15ca468adc3cad9d05b624490_172_185']") do | |
| 165 | + within(".diff-file form[rel$='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7']") do | |
| 170 | 166 | find(".js-close-discussion-note-form").trigger("click") |
| 171 | 167 | end |
| 172 | 168 | |
| ... | ... | @@ -176,12 +172,9 @@ describe "On a merge request diff", js: true, focus: true do |
| 176 | 172 | end |
| 177 | 173 | |
| 178 | 174 | describe "with muliple note forms" do |
| 179 | - let!(:project) { create(:project) } | |
| 180 | - let!(:merge_request) { create(:merge_request_with_diffs, source_project: project, target_project: project) } | |
| 181 | - | |
| 182 | 175 | before do |
| 183 | - find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_172_185"]').click | |
| 184 | - find('a[data-line-code="342e16cbbd482ac2047dc679b2749d248cc1428f_18_17"]').click | |
| 176 | + find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7"]').click | |
| 177 | + find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_10_10"]').click | |
| 185 | 178 | end |
| 186 | 179 | |
| 187 | 180 | it { should have_css(".js-temp-notes-holder", count: 2) } |
| ... | ... | @@ -189,12 +182,12 @@ describe "On a merge request diff", js: true, focus: true do |
| 189 | 182 | describe "previewing them separately" do |
| 190 | 183 | before do |
| 191 | 184 | # add two separate texts and trigger previews on both |
| 192 | - within("tr[id='4735dfc552ad7bf15ca468adc3cad9d05b624490_172_185'] + .js-temp-notes-holder") do | |
| 193 | - fill_in "note[note]", with: "One comment on line 185" | |
| 185 | + within("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7'] + .js-temp-notes-holder") do | |
| 186 | + fill_in "note[note]", with: "One comment on line 7" | |
| 194 | 187 | find(".js-note-preview-button").trigger("click") |
| 195 | 188 | end |
| 196 | - within("tr[id='342e16cbbd482ac2047dc679b2749d248cc1428f_18_17'] + .js-temp-notes-holder") do | |
| 197 | - fill_in "note[note]", with: "Another comment on line 17" | |
| 189 | + within("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_10_10'] + .js-temp-notes-holder") do | |
| 190 | + fill_in "note[note]", with: "Another comment on line 10" | |
| 198 | 191 | find(".js-note-preview-button").trigger("click") |
| 199 | 192 | end |
| 200 | 193 | end |
| ... | ... | @@ -202,14 +195,14 @@ describe "On a merge request diff", js: true, focus: true do |
| 202 | 195 | |
| 203 | 196 | describe "posting a note" do |
| 204 | 197 | before do |
| 205 | - within("tr[id='342e16cbbd482ac2047dc679b2749d248cc1428f_18_17'] + .js-temp-notes-holder") do | |
| 206 | - fill_in "note[note]", with: "Another comment on line 17" | |
| 198 | + within("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_10_10'] + .js-temp-notes-holder") do | |
| 199 | + fill_in "note[note]", with: "Another comment on line 10" | |
| 207 | 200 | click_button("Add Comment") |
| 208 | 201 | end |
| 209 | 202 | end |
| 210 | 203 | |
| 211 | 204 | it 'should be added as discussion' do |
| 212 | - should have_content("Another comment on line 17") | |
| 205 | + should have_content("Another comment on line 10") | |
| 213 | 206 | should have_css(".notes_holder") |
| 214 | 207 | should have_css(".notes_holder .note", count: 1) |
| 215 | 208 | should have_link("Reply") | ... | ... |
spec/finders/merge_requests_finder_spec.rb
| 1 | 1 | require 'spec_helper' |
| 2 | 2 | |
| 3 | 3 | describe MergeRequestsFinder do |
| 4 | - let(:user) { create :user } | |
| 4 | + let(:user) { create :user } | |
| 5 | 5 | let(:user2) { create :user } |
| 6 | + | |
| 6 | 7 | let(:project1) { create(:project) } |
| 7 | 8 | let(:project2) { create(:project) } |
| 8 | - let(:merge_request1) { create(:merge_request, author: user, source_project: project1, target_project: project2) } | |
| 9 | - let(:merge_request2) { create(:merge_request, author: user, source_project: project2, target_project: project1) } | |
| 10 | - let(:merge_request3) { create(:merge_request, author: user, source_project: project2, target_project: project2) } | |
| 9 | + | |
| 10 | + let!(:merge_request1) { create(:merge_request, :simple, author: user, source_project: project1, target_project: project2) } | |
| 11 | + let!(:merge_request2) { create(:merge_request, :simple, author: user, source_project: project2, target_project: project1) } | |
| 12 | + let!(:merge_request3) { create(:merge_request, :simple, author: user, source_project: project2, target_project: project2) } | |
| 11 | 13 | |
| 12 | 14 | before do |
| 13 | 15 | project1.team << [user, :master] |
| ... | ... | @@ -15,13 +17,7 @@ describe MergeRequestsFinder do |
| 15 | 17 | project2.team << [user2, :developer] |
| 16 | 18 | end |
| 17 | 19 | |
| 18 | - describe :execute do | |
| 19 | - before :each do | |
| 20 | - merge_request1 | |
| 21 | - merge_request2 | |
| 22 | - merge_request3 | |
| 23 | - end | |
| 24 | - | |
| 20 | + describe "#execute" do | |
| 25 | 21 | it 'should filter by scope' do |
| 26 | 22 | params = { scope: 'authored', state: 'opened' } |
| 27 | 23 | merge_requests = MergeRequestsFinder.new.execute(user, params) | ... | ... |
spec/seed_project.tar.gz
No preview for this file type