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