Commit 86e368a8af35fb0f09369630a226c80dc16ae5ec
1 parent
c7a64311
Exists in
master
and in
4 other branches
Reduce notes_on_merge_requests_spec time from 3 min to 1min
Showing
1 changed file
with
41 additions
and
55 deletions
Show diff stats
spec/features/notes_on_merge_requests_spec.rb
| ... | ... | @@ -14,15 +14,11 @@ describe "On a merge request", js: true do |
| 14 | 14 | subject { page } |
| 15 | 15 | |
| 16 | 16 | describe "the note form" do |
| 17 | - # main target form creation | |
| 18 | - it { should have_css(".js-main-target-form", visible: true, count: 1) } | |
| 19 | - | |
| 20 | - # button initalization | |
| 21 | - it { find(".js-main-target-form input[type=submit]").value.should == "Add Comment" } | |
| 22 | - it { within(".js-main-target-form") { should_not have_link("Cancel") } } | |
| 23 | - | |
| 24 | - describe "without text" do | |
| 25 | - it { within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: false) } } | |
| 17 | + it 'should be valid' do | |
| 18 | + should have_css(".js-main-target-form", visible: true, count: 1) | |
| 19 | + find(".js-main-target-form input[type=submit]").value.should == "Add Comment" | |
| 20 | + within(".js-main-target-form") { should_not have_link("Cancel") } | |
| 21 | + within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: false) } | |
| 26 | 22 | end |
| 27 | 23 | |
| 28 | 24 | describe "with text" do |
| ... | ... | @@ -32,9 +28,10 @@ describe "On a merge request", js: true do |
| 32 | 28 | end |
| 33 | 29 | end |
| 34 | 30 | |
| 35 | - it { within(".js-main-target-form") { should_not have_css(".js-comment-button[disabled]") } } | |
| 36 | - | |
| 37 | - it { within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: true) } } | |
| 31 | + it 'should have enable submit button and preview button' do | |
| 32 | + within(".js-main-target-form") { should_not have_css(".js-comment-button[disabled]") } | |
| 33 | + within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: true) } | |
| 34 | + end | |
| 38 | 35 | end |
| 39 | 36 | |
| 40 | 37 | describe "with preview" do |
| ... | ... | @@ -45,10 +42,11 @@ describe "On a merge request", js: true do |
| 45 | 42 | end |
| 46 | 43 | end |
| 47 | 44 | |
| 48 | - it { within(".js-main-target-form") { should have_css(".js-note-preview", text: "This is awesome", visible: true) } } | |
| 49 | - | |
| 50 | - it { within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: false) } } | |
| 51 | - it { within(".js-main-target-form") { should have_css(".js-note-edit-button", visible: true) } } | |
| 45 | + it 'should have text and visible edit button' do | |
| 46 | + within(".js-main-target-form") { should have_css(".js-note-preview", text: "This is awesome", visible: true) } | |
| 47 | + within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: false) } | |
| 48 | + within(".js-main-target-form") { should have_css(".js-note-edit-button", visible: true) } | |
| 49 | + end | |
| 52 | 50 | end |
| 53 | 51 | end |
| 54 | 52 | |
| ... | ... | @@ -61,27 +59,20 @@ describe "On a merge request", js: true do |
| 61 | 59 | end |
| 62 | 60 | end |
| 63 | 61 | |
| 64 | - # note added | |
| 65 | - it { should have_content("This is awsome!") } | |
| 66 | - | |
| 67 | - # reset form | |
| 68 | - it { within(".js-main-target-form") { should have_no_field("note[note]", with: "This is awesome!") } } | |
| 69 | - | |
| 70 | - # return from preview | |
| 71 | - it { within(".js-main-target-form") { should have_css(".js-note-preview", visible: false) } } | |
| 72 | - it { within(".js-main-target-form") { should have_css(".js-note-text", visible: true) } } | |
| 73 | - | |
| 62 | + it 'should be added and form reset' do | |
| 63 | + should have_content("This is awsome!") | |
| 64 | + within(".js-main-target-form") { should have_no_field("note[note]", with: "This is awesome!") } | |
| 65 | + within(".js-main-target-form") { should have_css(".js-note-preview", visible: false) } | |
| 66 | + within(".js-main-target-form") { should have_css(".js-note-text", visible: true) } | |
| 67 | + end | |
| 74 | 68 | |
| 75 | 69 | it "should be removable" do |
| 76 | 70 | find(".js-note-delete").trigger("click") |
| 77 | - | |
| 78 | 71 | should_not have_css(".note") |
| 79 | 72 | end |
| 80 | 73 | end |
| 81 | 74 | end |
| 82 | 75 | |
| 83 | - | |
| 84 | - | |
| 85 | 76 | describe "On a merge request diff", js: true, focus: true do |
| 86 | 77 | let!(:project) { create(:project_with_code) } |
| 87 | 78 | let!(:merge_request) { create(:merge_request_with_diffs, project: project) } |
| ... | ... | @@ -89,12 +80,7 @@ describe "On a merge request diff", js: true, focus: true do |
| 89 | 80 | before do |
| 90 | 81 | login_as :user |
| 91 | 82 | project.team << [@user, :master] |
| 92 | - | |
| 93 | 83 | visit diffs_project_merge_request_path(project, merge_request) |
| 94 | - | |
| 95 | - within '.diffs-tab' do | |
| 96 | - click_link("Diff") | |
| 97 | - end | |
| 98 | 84 | end |
| 99 | 85 | |
| 100 | 86 | subject { page } |
| ... | ... | @@ -111,15 +97,15 @@ describe "On a merge request diff", js: true, focus: true do |
| 111 | 97 | end |
| 112 | 98 | |
| 113 | 99 | describe "the note form" do |
| 114 | - # set up hidden fields correctly | |
| 115 | - it { within(".js-temp-notes-holder") { find("#note_noteable_type").value.should == "MergeRequest" } } | |
| 116 | - it { within(".js-temp-notes-holder") { find("#note_noteable_id").value.should == merge_request.id.to_s } } | |
| 117 | - it { within(".js-temp-notes-holder") { find("#note_commit_id").value.should == "" } } | |
| 118 | - it { within(".js-temp-notes-holder") { find("#note_line_code").value.should == "4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185" } } | |
| 119 | - | |
| 120 | - # buttons | |
| 121 | - it { should have_button("Add Comment") } | |
| 122 | - it { should have_css(".js-close-discussion-note-form", text: "Cancel") } | |
| 100 | + it 'should be valid' do | |
| 101 | + within(".js-temp-notes-holder") { find("#note_noteable_type").value.should == "MergeRequest" } | |
| 102 | + within(".js-temp-notes-holder") { find("#note_noteable_id").value.should == merge_request.id.to_s } | |
| 103 | + within(".js-temp-notes-holder") { find("#note_commit_id").value.should == "" } | |
| 104 | + within(".js-temp-notes-holder") { find("#note_line_code").value.should == "4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185" } | |
| 105 | + | |
| 106 | + should have_button("Add Comment") | |
| 107 | + should have_css(".js-close-discussion-note-form", text: "Cancel") | |
| 108 | + end | |
| 123 | 109 | |
| 124 | 110 | it "shouldn't add a second form for same row" do |
| 125 | 111 | find("#4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185.line_holder .js-add-diff-note-button").trigger("click") |
| ... | ... | @@ -175,11 +161,12 @@ describe "On a merge request diff", js: true, focus: true do |
| 175 | 161 | # removed form after submit |
| 176 | 162 | it { should have_no_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .js-temp-notes-holder") } |
| 177 | 163 | |
| 178 | - # added discussion | |
| 179 | - it { should have_content("Another comment on line 17") } | |
| 180 | - it { should have_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder") } | |
| 181 | - it { should have_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder .note", count: 1) } | |
| 182 | - it { should have_link("Reply") } | |
| 164 | + it 'should be added as discussion' do | |
| 165 | + should have_content("Another comment on line 17") | |
| 166 | + should have_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder") | |
| 167 | + should have_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder .note", count: 1) | |
| 168 | + should have_link("Reply") | |
| 169 | + end | |
| 183 | 170 | |
| 184 | 171 | it "should remove last note of a discussion" do |
| 185 | 172 | within("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder") do |
| ... | ... | @@ -209,13 +196,12 @@ describe "On a merge request diff", js: true, focus: true do |
| 209 | 196 | end |
| 210 | 197 | end |
| 211 | 198 | |
| 212 | - # inserted note | |
| 213 | - it { should have_content("An additional comment in reply") } | |
| 214 | - it { within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_css(".note", count: 2) } } | |
| 215 | - | |
| 216 | - # removed form after reply | |
| 217 | - it { within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_no_css("form") } } | |
| 218 | - it { within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_link("Reply") } } | |
| 199 | + it 'should be inserted and form removed from reply' do | |
| 200 | + should have_content("An additional comment in reply") | |
| 201 | + within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_css(".note", count: 2) } | |
| 202 | + within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_no_css("form") } | |
| 203 | + within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_link("Reply") } | |
| 204 | + end | |
| 219 | 205 | end |
| 220 | 206 | end |
| 221 | 207 | ... | ... |