summaryrefslogtreecommitdiff
path: root/spec/features
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-08-07 20:46:17 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-08-07 20:46:17 +0300
commita0755d2f051c5a9cd31721333adee22cb40b1008 (patch)
tree089b0bf2dc06b3bfc47b5bdbbb2ab136c659a271 /spec/features
parentfe228b89d540ff61fd97e27b0ebe5915a737bb52 (diff)
downloadgitlab-ce-a0755d2f051c5a9cd31721333adee22cb40b1008.tar.gz
Fix tests
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'spec/features')
-rw-r--r--spec/features/notes_on_merge_requests_spec.rb290
1 files changed, 151 insertions, 139 deletions
diff --git a/spec/features/notes_on_merge_requests_spec.rb b/spec/features/notes_on_merge_requests_spec.rb
index 3fe11849660..47776ba7f3f 100644
--- a/spec/features/notes_on_merge_requests_spec.rb
+++ b/spec/features/notes_on_merge_requests_spec.rb
@@ -1,197 +1,209 @@
require 'spec_helper'
-describe "On a merge request", js: true, feature: true do
- let!(:merge_request) { create(:merge_request, :simple) }
- let!(:project) { merge_request.source_project }
- let!(:note) { create(:note_on_merge_request, :with_attachment, project: project) }
-
- before do
- login_as :admin
- visit project_merge_request_path(project, merge_request)
- end
+describe 'Comments' do
+ include RepoHelpers
- subject { page }
+ describe "On a merge request", js: true, feature: true do
+ let!(:merge_request) { create(:merge_request) }
+ let!(:project) { merge_request.source_project }
+ let!(:note) { create(:note_on_merge_request, :with_attachment, project: project) }
- describe "the note form" do
- 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) }
+ before do
+ login_as :admin
+ visit project_merge_request_path(project, merge_request)
end
- describe "with text" do
- before do
- within(".js-main-target-form") do
- fill_in "note[note]", with: "This is awesome"
- end
- end
+ subject { page }
- 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) }
+ describe "the note form" do
+ 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
- end
- end
- describe "when posting a note" do
- before do
- within(".js-main-target-form") do
- fill_in "note[note]", with: "This is awsome!"
- find(".js-note-preview-button").trigger("click")
- click_button "Add Comment"
+ describe "with text" do
+ before do
+ within(".js-main-target-form") do
+ fill_in "note[note]", with: "This is awesome"
+ end
+ end
+
+ 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
end
- 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
- end
+ describe "when posting a note" do
+ before do
+ within(".js-main-target-form") do
+ fill_in "note[note]", with: "This is awsome!"
+ find(".js-note-preview-button").trigger("click")
+ click_button "Add Comment"
+ end
+ end
- describe "when editing a note", js: true do
- it "should contain the hidden edit form" do
- within("#note_#{note.id}") { should have_css(".note-edit-form", visible: false) }
+ 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
end
- describe "editing the note" do
- before do
- find('.note').hover
- find(".js-note-edit").click
+ describe "when editing a note", js: true do
+ it "should contain the hidden edit form" do
+ within("#note_#{note.id}") { should have_css(".note-edit-form", visible: false) }
end
- it "should show the note edit form and hide the note body" do
- within("#note_#{note.id}") do
- find(".note-edit-form", visible: true).should be_visible
- find(".note-text", visible: false).should_not be_visible
+ describe "editing the note" do
+ before do
+ find('.note').hover
+ find(".js-note-edit").click
end
- end
-
- it "should reset the edit note form textarea with the original content of the note if cancelled" do
- find('.note').hover
- find(".js-note-edit").click
- within(".note-edit-form") do
- fill_in "note[note]", with: "Some new content"
- find(".btn-cancel").click
- find(".js-note-text", visible: false).text.should == note.note
+ it "should show the note edit form and hide the note body" do
+ within("#note_#{note.id}") do
+ find(".note-edit-form", visible: true).should be_visible
+ find(".note-text", visible: false).should_not be_visible
+ end
end
- end
- it "appends the edited at time to the note" do
- find('.note').hover
- find(".js-note-edit").click
+ it "should reset the edit note form textarea with the original content of the note if cancelled" do
+ find('.note').hover
+ find(".js-note-edit").click
- within(".note-edit-form") do
- fill_in "note[note]", with: "Some new content"
- find(".btn-save").click
+ within(".note-edit-form") do
+ fill_in "note[note]", with: "Some new content"
+ find(".btn-cancel").click
+ find(".js-note-text", visible: false).text.should == note.note
+ end
end
- within("#note_#{note.id}") do
- should have_css(".note-last-update small")
- find(".note-last-update small").text.should match(/Edited less than a minute ago/)
+ it "appends the edited at time to the note" do
+ find('.note').hover
+ find(".js-note-edit").click
+
+ within(".note-edit-form") do
+ fill_in "note[note]", with: "Some new content"
+ find(".btn-save").click
+ end
+
+ within("#note_#{note.id}") do
+ should have_css(".note-last-update small")
+ find(".note-last-update small").text.should match(/Edited less than a minute ago/)
+ end
end
end
- end
- describe "deleting an attachment" do
- before do
- find('.note').hover
- find(".js-note-edit").click
- end
+ describe "deleting an attachment" do
+ before do
+ find('.note').hover
+ find(".js-note-edit").click
+ end
- it "shows the delete link" do
- within(".note-attachment") do
- should have_css(".js-note-attachment-delete")
+ it "shows the delete link" do
+ within(".note-attachment") do
+ should have_css(".js-note-attachment-delete")
+ end
end
- end
- it "removes the attachment div and resets the edit form" do
- find(".js-note-attachment-delete").click
- should_not have_css(".note-attachment")
- find(".note-edit-form", visible: false).should_not be_visible
+ it "removes the attachment div and resets the edit form" do
+ find(".js-note-attachment-delete").click
+ should_not have_css(".note-attachment")
+ find(".note-edit-form", visible: false).should_not be_visible
+ end
end
end
end
-end
-
-describe "On a merge request diff", js: true, feature: true do
- let(:merge_request) { create(:merge_request, :with_diffs, :simple) }
- let(:project) { merge_request.source_project }
-
- before do
- login_as :admin
- visit diffs_project_merge_request_path(project, merge_request)
- end
- subject { page }
+ describe "On a merge request diff", js: true, feature: true do
+ let(:merge_request) { create(:merge_request) }
+ let(:project) { merge_request.source_project }
- describe "when adding a note" do
before do
- find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7"]').click
- end
-
- describe "the notes holder" do
- it { should have_css(".js-temp-notes-holder") }
-
- it { within(".js-temp-notes-holder") { should have_css(".new_note") } }
+ login_as :admin
+ visit diffs_project_merge_request_path(project, merge_request)
end
- describe "the note form" do
- it "shouldn't add a second form for same row" do
- find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7"]').click
+ subject { page }
- should have_css("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7'] + .js-temp-notes-holder form", count: 1)
+ describe "when adding a note" do
+ before do
+ find("a[data-line-code=\"#{line_code}\"]").click
end
- it "should be removed when canceled" do
- within(".diff-file form[rel$='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7']") do
- find(".js-close-discussion-note-form").trigger("click")
- end
+ describe "the notes holder" do
+ it { should have_css(".js-temp-notes-holder") }
- should have_no_css(".js-temp-notes-holder")
+ it { within(".js-temp-notes-holder") { should have_css(".new_note") } }
end
- end
- end
- describe "with muliple note forms" do
- before do
- find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7"]').click
- find('a[data-line-code="8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_10_10"]').click
- end
+ describe "the note form" do
+ it "shouldn't add a second form for same row" do
+ find("a[data-line-code=\"#{line_code}\"]").click
- it { should have_css(".js-temp-notes-holder", count: 2) }
-
- describe "previewing them separately" do
- before do
- # add two separate texts and trigger previews on both
- within("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_7_7'] + .js-temp-notes-holder") do
- fill_in "note[note]", with: "One comment on line 7"
- find(".js-note-preview-button").trigger("click")
+ should have_css("tr[id='#{line_code}'] + .js-temp-notes-holder form", count: 1)
end
- within("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_10_10'] + .js-temp-notes-holder") do
- fill_in "note[note]", with: "Another comment on line 10"
- find(".js-note-preview-button").trigger("click")
+
+ it "should be removed when canceled" do
+ within(".diff-file form[rel$='#{line_code}']") do
+ find(".js-close-discussion-note-form").trigger("click")
+ end
+
+ should have_no_css(".js-temp-notes-holder")
end
end
end
- describe "posting a note" do
+ describe "with muliple note forms" do
before do
- within("tr[id='8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d_10_10'] + .js-temp-notes-holder") do
- fill_in "note[note]", with: "Another comment on line 10"
- click_button("Add Comment")
+ find("a[data-line-code=\"#{line_code}\"]").click
+ find("a[data-line-code=\"#{line_code_2}\"]").click
+ end
+
+ it { should have_css(".js-temp-notes-holder", count: 2) }
+
+ describe "previewing them separately" do
+ before do
+ # add two separate texts and trigger previews on both
+ within("tr[id='#{line_code}'] + .js-temp-notes-holder") do
+ fill_in "note[note]", with: "One comment on line 7"
+ find(".js-note-preview-button").trigger("click")
+ end
+ within("tr[id='#{line_code_2}'] + .js-temp-notes-holder") do
+ fill_in "note[note]", with: "Another comment on line 10"
+ find(".js-note-preview-button").trigger("click")
+ end
end
end
- it 'should be added as discussion' do
- should have_content("Another comment on line 10")
- should have_css(".notes_holder")
- should have_css(".notes_holder .note", count: 1)
- should have_link("Reply")
+ describe "posting a note" do
+ before do
+ within("tr[id='#{line_code_2}'] + .js-temp-notes-holder") do
+ fill_in "note[note]", with: "Another comment on line 10"
+ click_button("Add Comment")
+ end
+ end
+
+ it 'should be added as discussion' do
+ should have_content("Another comment on line 10")
+ should have_css(".notes_holder")
+ should have_css(".notes_holder .note", count: 1)
+ should have_link("Reply")
+ end
end
end
end
+
+ def line_code
+ sample_compare.changes.first[:line_code]
+ end
+
+ def line_code_2
+ sample_compare.changes.last[:line_code]
+ end
end