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,6 +158,11 @@ FactoryGirl.define do | ||
158 | state :reopened | 158 | state :reopened |
159 | end | 159 | end |
160 | 160 | ||
161 | + trait :simple do | ||
162 | + source_branch "simple_merge_request" | ||
163 | + target_branch "master" | ||
164 | + end | ||
165 | + | ||
161 | factory :closed_merge_request, traits: [:closed] | 166 | factory :closed_merge_request, traits: [:closed] |
162 | factory :reopened_merge_request, traits: [:reopened] | 167 | factory :reopened_merge_request, traits: [:reopened] |
163 | factory :merge_request_with_diffs, traits: [:with_diffs] | 168 | factory :merge_request_with_diffs, traits: [:with_diffs] |
@@ -173,7 +178,6 @@ FactoryGirl.define do | @@ -173,7 +178,6 @@ FactoryGirl.define do | ||
173 | factory :note_on_issue, traits: [:on_issue], aliases: [:votable_note] | 178 | factory :note_on_issue, traits: [:on_issue], aliases: [:votable_note] |
174 | factory :note_on_merge_request, traits: [:on_merge_request] | 179 | factory :note_on_merge_request, traits: [:on_merge_request] |
175 | factory :note_on_merge_request_diff, traits: [:on_merge_request, :on_diff] | 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 | trait :on_commit do | 182 | trait :on_commit do |
179 | project factory: :project | 183 | project factory: :project |
spec/features/notes_on_merge_requests_spec.rb
1 | require 'spec_helper' | 1 | require 'spec_helper' |
2 | 2 | ||
3 | describe "On a merge request", js: true do | 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 | before do | 8 | before do |
9 | - login_as :user | ||
10 | - project.team << [@user, :master] | ||
11 | - | 9 | + login_as :admin |
12 | visit project_merge_request_path(project, merge_request) | 10 | visit project_merge_request_path(project, merge_request) |
13 | end | 11 | end |
14 | 12 | ||
@@ -134,22 +132,20 @@ describe "On a merge request", js: true do | @@ -134,22 +132,20 @@ describe "On a merge request", js: true do | ||
134 | end | 132 | end |
135 | end | 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 | before do | 139 | before do |
142 | - login_as :user | ||
143 | - project.team << [@user, :master] | 140 | + login_as :admin |
144 | visit diffs_project_merge_request_path(project, merge_request) | 141 | visit diffs_project_merge_request_path(project, merge_request) |
145 | end | 142 | end |
146 | 143 | ||
147 | - | ||
148 | subject { page } | 144 | subject { page } |
149 | 145 | ||
150 | describe "when adding a note" do | 146 | describe "when adding a note" do |
151 | before do | 147 | before do |
152 | - find('a[data-line-code="4735dfc552ad7bf15ca468adc3cad9d05b624490_172_185"]').click | 148 | + find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7"]').click |
153 | end | 149 | end |
154 | 150 | ||
155 | describe "the notes holder" do | 151 | describe "the notes holder" do |
@@ -160,13 +156,13 @@ describe "On a merge request diff", js: true, focus: true do | @@ -160,13 +156,13 @@ describe "On a merge request diff", js: true, focus: true do | ||
160 | 156 | ||
161 | describe "the note form" do | 157 | describe "the note form" do |
162 | it "shouldn't add a second form for same row" do | 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 | end | 162 | end |
167 | 163 | ||
168 | it "should be removed when canceled" do | 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 | find(".js-close-discussion-note-form").trigger("click") | 166 | find(".js-close-discussion-note-form").trigger("click") |
171 | end | 167 | end |
172 | 168 | ||
@@ -176,12 +172,9 @@ describe "On a merge request diff", js: true, focus: true do | @@ -176,12 +172,9 @@ describe "On a merge request diff", js: true, focus: true do | ||
176 | end | 172 | end |
177 | 173 | ||
178 | describe "with muliple note forms" do | 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 | before do | 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 | end | 178 | end |
186 | 179 | ||
187 | it { should have_css(".js-temp-notes-holder", count: 2) } | 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,12 +182,12 @@ describe "On a merge request diff", js: true, focus: true do | ||
189 | describe "previewing them separately" do | 182 | describe "previewing them separately" do |
190 | before do | 183 | before do |
191 | # add two separate texts and trigger previews on both | 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 | find(".js-note-preview-button").trigger("click") | 187 | find(".js-note-preview-button").trigger("click") |
195 | end | 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 | find(".js-note-preview-button").trigger("click") | 191 | find(".js-note-preview-button").trigger("click") |
199 | end | 192 | end |
200 | end | 193 | end |
@@ -202,14 +195,14 @@ describe "On a merge request diff", js: true, focus: true do | @@ -202,14 +195,14 @@ describe "On a merge request diff", js: true, focus: true do | ||
202 | 195 | ||
203 | describe "posting a note" do | 196 | describe "posting a note" do |
204 | before do | 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 | click_button("Add Comment") | 200 | click_button("Add Comment") |
208 | end | 201 | end |
209 | end | 202 | end |
210 | 203 | ||
211 | it 'should be added as discussion' do | 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 | should have_css(".notes_holder") | 206 | should have_css(".notes_holder") |
214 | should have_css(".notes_holder .note", count: 1) | 207 | should have_css(".notes_holder .note", count: 1) |
215 | should have_link("Reply") | 208 | should have_link("Reply") |
spec/finders/merge_requests_finder_spec.rb
1 | require 'spec_helper' | 1 | require 'spec_helper' |
2 | 2 | ||
3 | describe MergeRequestsFinder do | 3 | describe MergeRequestsFinder do |
4 | - let(:user) { create :user } | 4 | + let(:user) { create :user } |
5 | let(:user2) { create :user } | 5 | let(:user2) { create :user } |
6 | + | ||
6 | let(:project1) { create(:project) } | 7 | let(:project1) { create(:project) } |
7 | let(:project2) { create(:project) } | 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 | before do | 14 | before do |
13 | project1.team << [user, :master] | 15 | project1.team << [user, :master] |
@@ -15,13 +17,7 @@ describe MergeRequestsFinder do | @@ -15,13 +17,7 @@ describe MergeRequestsFinder do | ||
15 | project2.team << [user2, :developer] | 17 | project2.team << [user2, :developer] |
16 | end | 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 | it 'should filter by scope' do | 21 | it 'should filter by scope' do |
26 | params = { scope: 'authored', state: 'opened' } | 22 | params = { scope: 'authored', state: 'opened' } |
27 | merge_requests = MergeRequestsFinder.new.execute(user, params) | 23 | merge_requests = MergeRequestsFinder.new.execute(user, params) |
spec/seed_project.tar.gz
No preview for this file type