diff --git a/features/steps/project/project_merge_requests.rb b/features/steps/project/project_merge_requests.rb index f5b51737..5d5ad449 100644 --- a/features/steps/project/project_merge_requests.rb +++ b/features/steps/project/project_merge_requests.rb @@ -110,6 +110,7 @@ class ProjectMergeRequests < Spinach::FeatureSteps end And 'I leave a comment like "Line is wrong" on line 185 of the first file' do + save_and_open_page within(:xpath, "//div[@class='diff_file'][1]") do click_link "add-diff-line-note-0_185_185" end diff --git a/features/steps/shared/diff_note.rb b/features/steps/shared/diff_note.rb index 36597e87..431ef022 100644 --- a/features/steps/shared/diff_note.rb +++ b/features/steps/shared/diff_note.rb @@ -20,7 +20,7 @@ module SharedDiffNote end Given 'I leave a diff comment like "Typo, please fix"' do - find("#0_29_14.line_holder .js-add-diff-note-button").trigger("click") + find("#586fb7c4e1add2d4d24e27566ed7064680098646_29_14.line_holder .js-add-diff-note-button").trigger("click") within(".diff_file") do fill_in "note[note]", with: "Typo, please fix" #click_button("Add Comment") @@ -29,7 +29,7 @@ module SharedDiffNote end Given 'I preview a diff comment text like "Should fix it :smile:"' do - find("#0_29_14.line_holder .js-add-diff-note-button").trigger("click") + find("#586fb7c4e1add2d4d24e27566ed7064680098646_29_14.line_holder .js-add-diff-note-button").trigger("click") within(".diff_file") do fill_in "note[note]", with: "Should fix it :smile:" find(".js-note-preview-button").trigger("click") @@ -37,7 +37,7 @@ module SharedDiffNote end Given 'I preview another diff comment text like "DRY this up"' do - find("#0_57_41.line_holder .js-add-diff-note-button").trigger("click") + find("#586fb7c4e1add2d4d24e27566ed7064680098646_57_41.line_holder .js-add-diff-note-button").trigger("click") within(".diff_file") do fill_in "note[note]", with: "DRY this up" find(".js-note-preview-button").trigger("click") @@ -45,11 +45,11 @@ module SharedDiffNote end Given 'I open a diff comment form' do - find("#0_29_14.line_holder .js-add-diff-note-button").trigger("click") + find("#586fb7c4e1add2d4d24e27566ed7064680098646_29_14.line_holder .js-add-diff-note-button").trigger("click") end Given 'I open another diff comment form' do - find("#0_57_41.line_holder .js-add-diff-note-button").trigger("click") + find("#586fb7c4e1add2d4d24e27566ed7064680098646_57_41.line_holder .js-add-diff-note-button").trigger("click") end Given 'I write a diff comment like ":-1: I don\'t like this"' do diff --git a/spec/requests/notes_on_merge_requests_spec.rb b/spec/requests/notes_on_merge_requests_spec.rb index e10a7f2c..8104582c 100644 --- a/spec/requests/notes_on_merge_requests_spec.rb +++ b/spec/requests/notes_on_merge_requests_spec.rb @@ -6,7 +6,7 @@ describe "On a merge request", js: true do before do login_as :user - project.add_access(@user, :read, :write) + project.team << [@user, :master] visit project_merge_request_path(project, merge_request) end @@ -91,13 +91,11 @@ describe "On a merge request diff", js: true, focus: true do let!(:project) { create(:project) } let!(:merge_request) { create(:merge_request_with_diffs, project: project) } - before(:all) do + before do login_as :user - project.add_access(@user, :read, :write) + project.team << [@user, :master] - visit project_merge_request_diff_path(project, merge_request) - - save_and_open_page + visit diffs_project_merge_request_path(project, merge_request) click_link("Diff") end @@ -106,21 +104,21 @@ describe "On a merge request diff", js: true, focus: true do describe "when adding a note" do before do - find("#0_185_185.line_holder .js-add-diff-note-button").trigger("click") + find("#4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185.line_holder .js-add-diff-note-button").trigger("click") end describe "the notes holder" do - it { should have_css("#0_185_185.line_holder + .js-temp-notes-holder") } + it { should have_css("#4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185.line_holder + .js-temp-notes-holder") } it { within(".js-temp-notes-holder") { should have_css(".new_note") } } end describe "the note form" do # set up hidden fields correctly - it { within(".js-temp-notes-holder") { find("#note_noteable_type").value.should == "Commit" } } + 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 == "" } } it { within(".js-temp-notes-holder") { find("#note_commit_id").value.should == "bcf03b5de6c33f3869ef70d68cf06e679d1d7f9a" } } - it { within(".js-temp-notes-holder") { find("#note_line_code").value.should == "0_185_185" } } + it { within(".js-temp-notes-holder") { find("#note_line_code").value.should == "4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185" } } # buttons it { should have_button("Add Comment") } @@ -131,9 +129,9 @@ describe "On a merge request diff", js: true, focus: true do it { should have_checked_field("Commit author") } it "shouldn't add a second form for same row" do - find("#0_185_185.line_holder .js-add-diff-note-button").trigger("click") + find("#4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185.line_holder .js-add-diff-note-button").trigger("click") - should have_css("#0_185_185.line_holder + .js-temp-notes-holder form", count: 1) + should have_css("#4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185.line_holder + .js-temp-notes-holder form", count: 1) end it "should be removed when canceled" do @@ -146,8 +144,8 @@ describe "On a merge request diff", js: true, focus: true do describe "with muliple note forms" do before do - find("#0_185_185.line_holder .js-add-diff-note-button").trigger("click") - find("#1_18_17.line_holder .js-add-diff-note-button").trigger("click") + find("#4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185.line_holder .js-add-diff-note-button").trigger("click") + find("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder .js-add-diff-note-button").trigger("click") end # has two line forms @@ -156,46 +154,46 @@ describe "On a merge request diff", js: true, focus: true do describe "previewing them separately" do before do # add two separate texts and trigger previews on both - within("#0_185_185.line_holder + .js-temp-notes-holder") do + within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185.line_holder + .js-temp-notes-holder") do fill_in "note[note]", with: "One comment on line 185" find(".js-note-preview-button").trigger("click") end - within("#1_18_17.line_holder + .js-temp-notes-holder") do + within("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .js-temp-notes-holder") do fill_in "note[note]", with: "Another comment on line 17" find(".js-note-preview-button").trigger("click") end end # check if previews were rendered separately - it { within("#0_185_185.line_holder + .js-temp-notes-holder") { should have_css(".js-note-preview", text: "One comment on line 185") } } - it { within("#1_18_17.line_holder + .js-temp-notes-holder") { should have_css(".js-note-preview", text: "Another comment on line 17") } } + it { within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_185_185.line_holder + .js-temp-notes-holder") { should have_css(".js-note-preview", text: "One comment on line 185") } } + it { within("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .js-temp-notes-holder") { should have_css(".js-note-preview", text: "Another comment on line 17") } } end describe "posting a note" do before do - within("#1_18_17.line_holder + .js-temp-notes-holder") do + within("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .js-temp-notes-holder") do fill_in "note[note]", with: "Another comment on line 17" click_button("Add Comment") end end # removed form after submit - it { should have_no_css("#1_18_17.line_holder + .js-temp-notes-holder") } + 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("#1_18_17.line_holder + .notes_holder") } - it { should have_css("#1_18_17.line_holder + .notes_holder .note", count: 1) } + 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 remove last note of a discussion" do - within("#1_18_17.line_holder + .notes_holder") do + within("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + .notes_holder") do find(".js-note-delete").trigger("click") end # removed whole discussion should_not have_css(".note_holder") - should have_css("#1_18_17.line_holder + #1_18_18.line_holder") + should have_css("#342e16cbbd482ac2047dc679b2749d248cc1428f_18_17.line_holder + #342e16cbbd482ac2047dc679b2749d248cc1428f_18_18.line_holder") end end end @@ -203,13 +201,13 @@ describe "On a merge request diff", js: true, focus: true do describe "when replying to a note" do before do # create first note - find("#0_184_184.line_holder .js-add-diff-note-button").trigger("click") - within("#0_184_184.line_holder + .js-temp-notes-holder") do + find("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder .js-add-diff-note-button").trigger("click") + within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .js-temp-notes-holder") do fill_in "note[note]", with: "One comment on line 184" click_button("Add Comment") end # create second note - within("#0_184_184.line_holder + .notes_holder") do + within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") do find(".js-discussion-reply-button").trigger("click") fill_in "note[note]", with: "An additional comment in reply" click_button("Add Comment") @@ -218,11 +216,11 @@ describe "On a merge request diff", js: true, focus: true do # inserted note it { should have_content("An additional comment in reply") } - it { within("#0_184_184.line_holder + .notes_holder") { should have_css(".note", count: 2) } } + it { within("#4735dfc552ad7bf15ca468adc3cad9d05b624490_184_184.line_holder + .notes_holder") { should have_css(".note", count: 2) } } # removed form after reply - it { within("#0_184_184.line_holder + .notes_holder") { should have_no_css("form") } } - it { within("#0_184_184.line_holder + .notes_holder") { should have_link("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") } } end end @@ -232,4 +230,4 @@ describe "On merge request discussion", js: true do describe "with merge request diff note" describe "with commit note" describe "with commit diff note" -end \ No newline at end of file +end diff --git a/spec/requests/notes_on_wall_spec.rb b/spec/requests/notes_on_wall_spec.rb index b42d293f..c644603d 100644 --- a/spec/requests/notes_on_wall_spec.rb +++ b/spec/requests/notes_on_wall_spec.rb @@ -6,8 +6,7 @@ describe "On the project wall", js: true do before do login_as :user - project.add_access(@user, :read, :write) - + project.team << [@user, :master] visit wall_project_path(project) end