From 86e368a8af35fb0f09369630a226c80dc16ae5ec Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> Date: Wed, 10 Apr 2013 20:27:43 +0300 Subject: [PATCH] Reduce notes_on_merge_requests_spec time from 3 min to 1min --- spec/features/notes_on_merge_requests_spec.rb | 96 ++++++++----------- 1 file changed, 41 insertions(+), 55 deletions(-) diff --git a/spec/features/notes_on_merge_requests_spec.rb b/spec/features/notes_on_merge_requests_spec.rb index 82f442798de..14a884b29cd 100644 --- a/spec/features/notes_on_merge_requests_spec.rb +++ b/spec/features/notes_on_merge_requests_spec.rb @@ -14,15 +14,11 @@ describe "On a merge request", js: true do subject { page } describe "the note form" do - # main target form creation - it { should have_css(".js-main-target-form", visible: true, count: 1) } - - # button initalization - it { find(".js-main-target-form input[type=submit]").value.should == "Add Comment" } - it { within(".js-main-target-form") { should_not have_link("Cancel") } } - - describe "without text" do - it { within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: false) } } + it 'should be valid' do + should have_css(".js-main-target-form", visible: true, count: 1) + find(".js-main-target-form input[type=submit]").value.should == "Add Comment" + within(".js-main-target-form") { should_not have_link("Cancel") } + within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: false) } end describe "with text" do @@ -32,9 +28,10 @@ describe "On a merge request", js: true do end end - it { within(".js-main-target-form") { should_not have_css(".js-comment-button[disabled]") } } - - it { within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: true) } } + it 'should have enable submit button and preview button' do + within(".js-main-target-form") { should_not have_css(".js-comment-button[disabled]") } + within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: true) } + end end describe "with preview" do @@ -45,10 +42,11 @@ describe "On a merge request", js: true do end end - it { within(".js-main-target-form") { should have_css(".js-note-preview", text: "This is awesome", visible: true) } } - - it { within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: false) } } - it { within(".js-main-target-form") { should have_css(".js-note-edit-button", visible: true) } } + it 'should have text and visible edit button' do + within(".js-main-target-form") { should have_css(".js-note-preview", text: "This is awesome", visible: true) } + within(".js-main-target-form") { should have_css(".js-note-preview-button", visible: false) } + within(".js-main-target-form") { should have_css(".js-note-edit-button", visible: true) } + end end end @@ -61,27 +59,20 @@ describe "On a merge request", js: true do end end - # note added - it { should have_content("This is awsome!") } - - # reset form - it { within(".js-main-target-form") { should have_no_field("note[note]", with: "This is awesome!") } } - - # return from preview - it { within(".js-main-target-form") { should have_css(".js-note-preview", visible: false) } } - it { within(".js-main-target-form") { should have_css(".js-note-text", visible: true) } } - + it 'should be added and form reset' do + should have_content("This is awsome!") + within(".js-main-target-form") { should have_no_field("note[note]", with: "This is awesome!") } + within(".js-main-target-form") { should have_css(".js-note-preview", visible: false) } + within(".js-main-target-form") { should have_css(".js-note-text", visible: true) } + end it "should be removable" do find(".js-note-delete").trigger("click") - should_not have_css(".note") end end end - - describe "On a merge request diff", js: true, focus: true do let!(:project) { create(:project_with_code) } 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 before do login_as :user project.team << [@user, :master] - visit diffs_project_merge_request_path(project, merge_request) - - within '.diffs-tab' do - click_link("Diff") - end end subject { page } @@ -111,15 +97,15 @@ describe "On a merge request diff", js: true, focus: true do end describe "the note form" do - # set up hidden fields correctly - it { within(".js-temp-notes-holder") { find("#note_noteable_type").value.should == "MergeRequest" } } - it { within(".js-temp-notes-holder") { find("#note_noteable_id").value.should == merge_request.id.to_s } } - it { within(".js-temp-notes-holder") { find("#note_commit_id").value.should == "" } } - it { within(".js-temp-notes-holder") { find("#note_line_code").value.should == "4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185" } } - - # buttons - it { should have_button("Add Comment") } - it { should have_css(".js-close-discussion-note-form", text: "Cancel") } + it 'should be valid' do + within(".js-temp-notes-holder") { find("#note_noteable_type").value.should == "MergeRequest" } + within(".js-temp-notes-holder") { find("#note_noteable_id").value.should == merge_request.id.to_s } + within(".js-temp-notes-holder") { find("#note_commit_id").value.should == "" } + within(".js-temp-notes-holder") { find("#note_line_code").value.should == "4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185" } + + should have_button("Add Comment") + should have_css(".js-close-discussion-note-form", text: "Cancel") + end it "shouldn't add a second form for same row" do 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 # removed form after submit it { should have_no_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .js-temp-notes-holder") } - # added discussion - it { should have_content("Another comment on line 17") } - it { should have_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder") } - it { should have_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder .note", count: 1) } - it { should have_link("Reply") } + it 'should be added as discussion' do + should have_content("Another comment on line 17") + should have_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder") + should have_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder .note", count: 1) + should have_link("Reply") + end it "should remove last note of a discussion" do within("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder") do @@ -209,13 +196,12 @@ describe "On a merge request diff", js: true, focus: true do end end - # inserted note - it { should have_content("An additional comment in reply") } - it { within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_css(".note", count: 2) } } - - # removed form after reply - it { within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_no_css("form") } } - it { within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_link("Reply") } } + it 'should be inserted and form removed from reply' do + should have_content("An additional comment in reply") + within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_css(".note", count: 2) } + within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_no_css("form") } + within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_link("Reply") } + end end end -- 2.30.9