Commit 48eccdb2 authored by Robert Speicher's avatar Robert Speicher

Merge branch 'fix-delete-notes-on-merge-request-diff' into 'master'

Fix delete notes on merge request diff

Fixes #3971

See merge request !2061
parents a2a68858 1a9d6ec7
...@@ -45,6 +45,7 @@ v 8.3.0 (unreleased) ...@@ -45,6 +45,7 @@ v 8.3.0 (unreleased)
- Accept COPYING,COPYING.lesser, and licence as license file (Zeger-Jan van de Weg) - Accept COPYING,COPYING.lesser, and licence as license file (Zeger-Jan van de Weg)
- Fix emoji aliases problem - Fix emoji aliases problem
- Fix award-emojis Flash alert's width - Fix award-emojis Flash alert's width
- Fix deleting notes on a merge request diff
v 8.2.3 v 8.2.3
- Fix application settings cache not expiring after changes (Stan Hu) - Fix application settings cache not expiring after changes (Stan Hu)
......
...@@ -350,18 +350,26 @@ class @Notes ...@@ -350,18 +350,26 @@ class @Notes
### ###
removeNote: -> removeNote: ->
note = $(this).closest(".note") note = $(this).closest(".note")
notes = note.closest(".notes") note_id = note.attr('id')
# check if this is the last note for this line $('.note[id="' + note_id + '"]').each ->
if notes.find(".note").length is 1 note = $(this)
notes = note.closest(".notes")
count = notes.closest(".notes_holder").find(".discussion-notes-count")
# for discussions # check if this is the last note for this line
notes.closest(".discussion").remove() if notes.find(".note").length is 1
# for diff lines # for discussions
notes.closest("tr").remove() notes.closest(".discussion").remove()
note.remove() # for diff lines
notes.closest("tr").remove()
else
# update notes count
count.get(0).lastChild.nodeValue = " #{notes.children().length - 1}"
note.remove()
### ###
Called in response to clicking the delete attachment link Called in response to clicking the delete attachment link
......
...@@ -94,6 +94,16 @@ Feature: Project Merge Requests ...@@ -94,6 +94,16 @@ Feature: Project Merge Requests
Then I should not see a diff comment saying "Line is wrong" Then I should not see a diff comment saying "Line is wrong"
And I should see a diff comment saying "Typo, please fix" And I should see a diff comment saying "Typo, please fix"
@javascript
Scenario: I delete a comment on a merge request diff
Given project "Shop" have "Bug NS-05" open merge request with diffs inside
And I visit merge request page "Bug NS-05"
And I click on the Changes tab
And I leave a comment like "Line is wrong" on diff
And I delete the comment "Line is wrong" on diff
And I click on the Discussion tab
Then I should not see any discussion
@javascript @javascript
Scenario: I comment on a line of a commit in merge request Scenario: I comment on a line of a commit in merge request
Given project "Shop" have "Bug NS-05" open merge request with diffs inside Given project "Shop" have "Bug NS-05" open merge request with diffs inside
......
...@@ -211,6 +211,25 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps ...@@ -211,6 +211,25 @@ class Spinach::Features::ProjectMergeRequests < Spinach::FeatureSteps
end end
end end
step 'I delete the comment "Line is wrong" on diff' do
page.within('.diff-file:nth-of-type(5) .note') do
find('.js-note-delete').click
end
end
step 'I click on the Discussion tab' do
page.within '.merge-request-tabs' do
click_link 'Discussion'
end
# Waits for load
expect(page).to have_css('.tab-content #notes.active')
end
step 'I should not see any discussion' do
expect(page).not_to have_css('.notes .discussion')
end
step 'I should see a discussion has started on diff' do step 'I should see a discussion has started on diff' do
page.within(".notes .discussion") do page.within(".notes .discussion") do
page.should have_content "#{current_user.name} started a discussion" page.should have_content "#{current_user.name} started a discussion"
......
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