Commit 603f1161 authored by Michel Engelen's avatar Michel Engelen

updated tests for !29553

parent a213b14e
require 'rails_helper' require 'rails_helper'
describe 'Merge request > User resolves diff notes and discussions', :js do describe 'Merge request > User resolves diff notes and threads', :js do
let(:project) { create(:project, :public, :repository) } let(:project) { create(:project, :public, :repository) }
let(:user) { project.creator } let(:user) { project.creator }
let(:guest) { create(:user) } let(:guest) { create(:user) }
...@@ -17,7 +17,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -17,7 +17,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
) )
end end
context 'no discussions' do context 'no threads' do
before do before do
project.add_maintainer(user) project.add_maintainer(user)
sign_in(user) sign_in(user)
...@@ -25,8 +25,8 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -25,8 +25,8 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
visit_merge_request visit_merge_request
end end
it 'displays no discussion resolved data' do it 'displays no thread resolved data' do
expect(page).not_to have_content('discussion resolved') expect(page).not_to have_content('thread resolved')
expect(page).not_to have_selector('.discussion-next-btn') expect(page).not_to have_selector('.discussion-next-btn')
end end
end end
...@@ -38,10 +38,10 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -38,10 +38,10 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
visit_merge_request visit_merge_request
end end
context 'single discussion' do context 'single thread' do
it 'shows text with how many discussions' do it 'shows text with how many threads' do
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/1 discussion resolved') expect(page).to have_content('0/1 thread resolved')
end end
end end
...@@ -54,18 +54,18 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -54,18 +54,18 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.within '.diff-content' do page.within '.diff-content' do
expect(page).to have_selector('.btn', text: 'Unresolve discussion') expect(page).to have_selector('.btn', text: 'Unresolve thread')
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/1 discussion resolved') expect(page).to have_content('1/1 thread resolved')
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
end end
it 'allows user to mark discussion as resolved' do it 'allows user to mark thread as resolved' do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Resolve discussion' click_button 'Resolve thread'
end end
expect(page).to have_selector('.discussion-body', visible: false) expect(page).to have_selector('.discussion-body', visible: false)
...@@ -75,38 +75,38 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -75,38 +75,38 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/1 discussion resolved') expect(page).to have_content('1/1 thread resolved')
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
end end
it 'allows user to unresolve discussion' do it 'allows user to unresolve thread' do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Resolve discussion' click_button 'Resolve thread'
click_button 'Unresolve discussion' click_button 'Unresolve thread'
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/1 discussion resolved') expect(page).to have_content('0/1 thread resolved')
end end
end end
describe 'resolved discussion' do describe 'resolved thread' do
before do before do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Resolve discussion' click_button 'Resolve thread'
end end
visit_merge_request visit_merge_request
end end
describe 'timeline view' do describe 'timeline view' do
it 'hides when resolve discussion is clicked' do it 'hides when resolve thread is clicked' do
expect(page).to have_selector('.discussion-header') expect(page).to have_selector('.discussion-header')
expect(page).not_to have_selector('.discussion-body') expect(page).not_to have_selector('.discussion-body')
end end
it 'shows resolved discussion when toggled' do it 'shows resolved thread when toggled' do
find(".timeline-content .discussion[data-discussion-id='#{note.discussion_id}'] .discussion-toggle-button").click find(".timeline-content .discussion[data-discussion-id='#{note.discussion_id}'] .discussion-toggle-button").click
expect(page.find(".line-holder-placeholder")).to be_visible expect(page.find(".line-holder-placeholder")).to be_visible
...@@ -130,11 +130,11 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -130,11 +130,11 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
page.find('#parallel-diff-btn').click page.find('#parallel-diff-btn').click
end end
it 'hides when resolve discussion is clicked' do it 'hides when resolve thread is clicked' do
expect(page).not_to have_selector('.diffs .diff-file .notes_holder') expect(page).not_to have_selector('.diffs .diff-file .notes_holder')
end end
it 'shows resolved discussion when toggled' do it 'shows resolved thread when toggled' do
find('.diff-comment-avatar-holders').click find('.diff-comment-avatar-holders').click
expect(find('.diffs .diff-file .notes_holder')).to be_visible expect(find('.diffs .diff-file .notes_holder')).to be_visible
...@@ -143,7 +143,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -143,7 +143,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
describe 'reply form' do describe 'reply form' do
before do before do
click_button 'Toggle discussion' click_button 'Toggle thread'
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Reply...' click_button 'Reply...'
...@@ -160,34 +160,34 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -160,34 +160,34 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/1 discussion resolved') expect(page).to have_content('1/1 thread resolved')
end end
end end
it 'allows user to unresolve from reply form without a comment' do it 'allows user to unresolve from reply form without a comment' do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Unresolve discussion' click_button 'Unresolve thread'
wait_for_requests wait_for_requests
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/1 discussion resolved') expect(page).to have_content('0/1 thread resolved')
expect(page).not_to have_selector('.line-resolve-btn.is-active') expect(page).not_to have_selector('.line-resolve-btn.is-active')
end end
end end
it 'allows user to comment & unresolve discussion' do it 'allows user to comment & unresolve thread' do
page.within '.diff-content' do page.within '.diff-content' do
find('.js-note-text').set 'testing' find('.js-note-text').set 'testing'
click_button 'Comment & unresolve discussion' click_button 'Comment & unresolve thread'
wait_for_requests wait_for_requests
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/1 discussion resolved') expect(page).to have_content('0/1 thread resolved')
end end
end end
end end
...@@ -197,31 +197,31 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -197,31 +197,31 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Reply...' click_button 'Reply...'
click_button 'Resolve discussion' click_button 'Resolve thread'
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/1 discussion resolved') expect(page).to have_content('1/1 thread resolved')
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
end end
it 'allows user to comment & resolve discussion' do it 'allows user to comment & resolve thread' do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Reply...' click_button 'Reply...'
find('.js-note-text').set 'testing' find('.js-note-text').set 'testing'
click_button 'Comment & resolve discussion' click_button 'Comment & resolve thread'
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/1 discussion resolved') expect(page).to have_content('1/1 thread resolved')
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
end end
it 'allows user to quickly scroll to next unresolved discussion' do it 'allows user to quickly scroll to next unresolved thread' do
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
page.find('.discussion-next-btn').click page.find('.discussion-next-btn').click
end end
...@@ -231,7 +231,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -231,7 +231,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
it 'hides jump to next button when all resolved' do it 'hides jump to next button when all resolved' do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Resolve discussion' click_button 'Resolve thread'
end end
expect(page).to have_selector('.discussion-next-btn', visible: false) expect(page).to have_selector('.discussion-next-btn', visible: false)
...@@ -248,7 +248,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -248,7 +248,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
end end
it 'hides jump to next discussion button' do it 'hides jump to next thread button' do
page.within '.discussion-reply-holder' do page.within '.discussion-reply-holder' do
expect(page).not_to have_selector('.discussion-next-btn') expect(page).not_to have_selector('.discussion-next-btn')
end end
...@@ -261,7 +261,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -261,7 +261,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
visit_merge_request visit_merge_request
end end
it 'does not mark discussion as resolved when resolving single note' do it 'does not mark thread as resolved when resolving single note' do
page.within("#note_#{note.id}") do page.within("#note_#{note.id}") do
first('.line-resolve-btn').click first('.line-resolve-btn').click
...@@ -273,11 +273,11 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -273,11 +273,11 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
expect(page).to have_content('Last updated') expect(page).to have_content('Last updated')
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/1 discussion resolved') expect(page).to have_content('0/1 thread resolved')
end end
end end
it 'resolves discussion' do it 'resolves thread' do
resolve_buttons = page.all('.note .line-resolve-btn', count: 2) resolve_buttons = page.all('.note .line-resolve-btn', count: 2)
resolve_buttons.each do |button| resolve_buttons.each do |button|
button.click button.click
...@@ -290,28 +290,28 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -290,28 +290,28 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/1 discussion resolved') expect(page).to have_content('1/1 thread resolved')
end end
end end
end end
context 'muliple discussions' do context 'muliple threads' do
before do before do
create(:diff_note_on_merge_request, project: project, position: position, noteable: merge_request) create(:diff_note_on_merge_request, project: project, position: position, noteable: merge_request)
visit_merge_request visit_merge_request
end end
it 'shows text with how many discussions' do it 'shows text with how many threads' do
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/2 discussions resolved') expect(page).to have_content('0/2 threads resolved')
end end
end end
it 'allows user to mark a single note as resolved' do it 'allows user to mark a single note as resolved' do
click_button('Resolve discussion', match: :first) click_button('Resolve thread', match: :first)
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/2 discussions resolved') expect(page).to have_content('1/2 threads resolved')
end end
end end
...@@ -321,27 +321,27 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -321,27 +321,27 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('2/2 discussions resolved') expect(page).to have_content('2/2 threads resolved')
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
end end
it 'allows user to mark all discussions as resolved' do it 'allows user to mark all threads as resolved' do
page.all('.discussion-reply-holder', count: 2).each do |reply_holder| page.all('.discussion-reply-holder', count: 2).each do |reply_holder|
page.within reply_holder do page.within reply_holder do
click_button 'Resolve discussion' click_button 'Resolve thread'
end end
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('2/2 discussions resolved') expect(page).to have_content('2/2 threads resolved')
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
end end
it 'allows user to quickly scroll to next unresolved discussion' do it 'allows user to quickly scroll to next unresolved thread' do
page.within('.discussion-reply-holder', match: :first) do page.within('.discussion-reply-holder', match: :first) do
click_button 'Resolve discussion' click_button 'Resolve thread'
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
...@@ -362,7 +362,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -362,7 +362,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
end end
it 'shows jump to next discussion button except on last discussion' do it 'shows jump to next thread button except on last thread' do
wait_for_requests wait_for_requests
all_discussion_replies = page.all('.discussion-reply-holder') all_discussion_replies = page.all('.discussion-reply-holder')
...@@ -372,15 +372,15 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -372,15 +372,15 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
expect(all_discussion_replies.last.all('.discussion-next-btn').count).to eq(0) expect(all_discussion_replies.last.all('.discussion-next-btn').count).to eq(0)
end end
it 'displays next discussion even if hidden' do it 'displays next thread even if hidden' do
page.all('.note-discussion', count: 2).each do |discussion| page.all('.note-discussion', count: 2).each do |discussion|
page.within discussion do page.within discussion do
click_button 'Toggle discussion' click_button 'Toggle thread'
end end
end end
page.within('.issuable-discussion #notes') do page.within('.issuable-discussion #notes') do
expect(page).not_to have_selector('.btn', text: 'Resolve discussion') expect(page).not_to have_selector('.btn', text: 'Resolve thread')
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
...@@ -388,19 +388,19 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -388,19 +388,19 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.all('.note-discussion').first do page.all('.note-discussion').first do
expect(page.find('.discussion-with-resolve-btn')).to have_selector('.btn', text: 'Resolve discussion') expect(page.find('.discussion-with-resolve-btn')).to have_selector('.btn', text: 'Resolve thread')
end end
page.all('.note-discussion').last do page.all('.note-discussion').last do
expect(page.find('.discussion-with-resolve-btn')).not.to have_selector('.btn', text: 'Resolve discussion') expect(page.find('.discussion-with-resolve-btn')).not.to have_selector('.btn', text: 'Resolve thread')
end end
end end
end end
context 'changes tab' do context 'changes tab' do
it 'shows text with how many discussions' do it 'shows text with how many threads' do
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/1 discussion resolved') expect(page).to have_content('0/1 thread resolved')
end end
end end
...@@ -412,18 +412,18 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -412,18 +412,18 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.within '.diff-content' do page.within '.diff-content' do
expect(page).to have_selector('.btn', text: 'Unresolve discussion') expect(page).to have_selector('.btn', text: 'Unresolve thread')
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/1 discussion resolved') expect(page).to have_content('1/1 thread resolved')
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
end end
it 'allows user to mark discussion as resolved' do it 'allows user to mark thread as resolved' do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Resolve discussion' click_button 'Resolve thread'
end end
page.within '.diff-content .note' do page.within '.diff-content .note' do
...@@ -431,50 +431,50 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -431,50 +431,50 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/1 discussion resolved') expect(page).to have_content('1/1 thread resolved')
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
end end
it 'allows user to unresolve discussion' do it 'allows user to unresolve thread' do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Resolve discussion' click_button 'Resolve thread'
click_button 'Unresolve discussion' click_button 'Unresolve thread'
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/1 discussion resolved') expect(page).to have_content('0/1 thread resolved')
end end
end end
it 'allows user to comment & resolve discussion' do it 'allows user to comment & resolve thread' do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Reply...' click_button 'Reply...'
find('.js-note-text').set 'testing' find('.js-note-text').set 'testing'
click_button 'Comment & resolve discussion' click_button 'Comment & resolve thread'
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/1 discussion resolved') expect(page).to have_content('1/1 thread resolved')
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
end end
it 'allows user to comment & unresolve discussion' do it 'allows user to comment & unresolve thread' do
page.within '.diff-content' do page.within '.diff-content' do
click_button 'Resolve discussion' click_button 'Resolve thread'
click_button 'Reply...' click_button 'Reply...'
find('.js-note-text').set 'testing' find('.js-note-text').set 'testing'
click_button 'Comment & unresolve discussion' click_button 'Comment & unresolve thread'
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/1 discussion resolved') expect(page).to have_content('0/1 thread resolved')
end end
end end
end end
...@@ -497,13 +497,13 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -497,13 +497,13 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/1 discussion resolved') expect(page).to have_content('0/1 thread resolved')
end end
end end
it 'does not allow user to mark discussion as resolved' do it 'does not allow user to mark thread as resolved' do
page.within '.diff-content .note' do page.within '.diff-content .note' do
expect(page).not_to have_selector('.btn', text: 'Resolve discussion') expect(page).not_to have_selector('.btn', text: 'Resolve thread')
end end
end end
end end
...@@ -523,11 +523,11 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -523,11 +523,11 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.within '.diff-content' do page.within '.diff-content' do
expect(page).to have_selector('.btn', text: 'Unresolve discussion') expect(page).to have_selector('.btn', text: 'Unresolve thread')
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('1/1 discussion resolved') expect(page).to have_content('1/1 thread resolved')
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
end end
...@@ -546,7 +546,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -546,7 +546,7 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
page.within '.line-resolve-all-container' do page.within '.line-resolve-all-container' do
expect(page).to have_content('0/1 discussion resolved') expect(page).to have_content('0/1 thread resolved')
end end
end end
end end
...@@ -558,15 +558,15 @@ describe 'Merge request > User resolves diff notes and discussions', :js do ...@@ -558,15 +558,15 @@ describe 'Merge request > User resolves diff notes and discussions', :js do
end end
it 'shows resolved icon' do it 'shows resolved icon' do
expect(page).to have_content '1/1 discussion resolved' expect(page).to have_content '1/1 thread resolved'
click_button 'Toggle discussion' click_button 'Toggle thread'
expect(page).to have_selector('.line-resolve-btn.is-active') expect(page).to have_selector('.line-resolve-btn.is-active')
end end
it 'does not allow user to click resolve button' do it 'does not allow user to click resolve button' do
expect(page).to have_selector('.line-resolve-btn.is-disabled') expect(page).to have_selector('.line-resolve-btn.is-disabled')
click_button 'Toggle discussion' click_button 'Toggle thread'
expect(page).to have_selector('.line-resolve-btn.is-disabled') expect(page).to have_selector('.line-resolve-btn.is-disabled')
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment