Skip to content
Snippets Groups Projects
Commit 682cfbb4 authored by Eric Eastwood's avatar Eric Eastwood
Browse files

Fix system note comparison and standardize note setup

parent e4eec191
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -287,6 +287,13 @@ const normalizeNewlines = function(str) {
}
};
 
Notes.prototype.setupNewNote = function($note) {
// Update datetime format on the recent note
gl.utils.localTimeAgo($note.find('.js-timeago'), false);
this.collapseLongCommitList();
this.taskList.init();
};
/*
Render note in main comments area.
 
Loading
Loading
@@ -312,10 +319,7 @@ const normalizeNewlines = function(str) {
 
const $newNote = Notes.animateAppendNote(noteEntity.html, $notesList);
 
// Update datetime format on the recent note
gl.utils.localTimeAgo($newNote.find('.js-timeago'), false);
this.collapseLongCommitList();
this.taskList.init();
this.setupNewNote($newNote);
this.refresh();
return this.updateNotesCount(1);
}
Loading
Loading
@@ -341,9 +345,7 @@ const normalizeNewlines = function(str) {
}
else {
const $updatedNote = Notes.animateUpdateNote(noteEntity.html, $note);
// Update datetime format on the recent note
gl.utils.localTimeAgo($updatedNote.find('.js-timeago'), false);
this.setupNewNote($updatedNote);
}
}
};
Loading
Loading
@@ -665,10 +667,8 @@ const normalizeNewlines = function(str) {
if (this.updatedNotesTrackingMap[noteId]) {
const $newNote = $(this.updatedNotesTrackingMap[noteId].html);
$note.replaceWith($newNote);
this.setupNewNote($newNote);
this.updatedNotesTrackingMap[noteId] = null;
// Update datetime format on the recent note
gl.utils.localTimeAgo($newNote.find('.js-timeago'), false);
}
else {
$note.find('.js-finish-edit-warning').hide();
Loading
Loading
@@ -1144,7 +1144,7 @@ const normalizeNewlines = function(str) {
// There can be CRLF vs LF mismatches if we don't sanitize and compare the same way
const sanitizedNoteEntityText = normalizeNewlines(noteEntity.note.trim());
const currentNoteText = normalizeNewlines(
$note.find('.original-note-content').text().trim()
$note.find('.original-note-content').first().text().trim()
);
return sanitizedNoteEntityText !== currentNoteText;
};
Loading
Loading
Loading
Loading
@@ -29,8 +29,6 @@
- if note.system
%span.system-note-message
= note.redacted_note_html
.original-note-content.hidden
= note.note
%a{ href: "##{dom_id(note)}" }
= time_ago_with_tooltip(note.created_at, placement: 'bottom', html_class: 'note-created-ago')
- unless note.system?
Loading
Loading
Loading
Loading
@@ -31,12 +31,12 @@ feature 'Issue notes polling', :feature, :js do
 
it 'has .original-note-content to compare against' do
expect(page).to have_selector("#note_#{existing_note.id}", text: note_text)
expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", visible: false)
expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", count: 1, visible: false)
 
update_note(existing_note, updated_text)
 
expect(page).to have_selector("#note_#{existing_note.id}", text: updated_text)
expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", visible: false)
expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", count: 1, visible: false)
end
 
it 'displays the updated content' do
Loading
Loading
@@ -98,12 +98,28 @@ feature 'Issue notes polling', :feature, :js do
 
it 'has .original-note-content to compare against' do
expect(page).to have_selector("#note_#{existing_note.id}", text: note_text)
expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", visible: false)
expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", count: 1, visible: false)
 
update_note(existing_note, updated_text)
 
expect(page).to have_selector("#note_#{existing_note.id}", text: updated_text)
expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", visible: false)
expect(page).to have_selector("#note_#{existing_note.id} .original-note-content", count: 1, visible: false)
end
end
context 'system notes' do
let(:user) { create(:user) }
let(:note_text) { "Some system note" }
let!(:system_note) { create(:system_note, noteable: issue, project: project, author: user, note: note_text) }
before do
login_as(user)
visit namespace_project_issue_path(project.namespace, project, issue)
end
it 'has .original-note-content to compare against' do
expect(page).to have_selector("#note_#{system_note.id}", text: note_text)
expect(page).to have_selector("#note_#{system_note.id} .original-note-content", count: 1, visible: false)
end
end
end
Loading
Loading
Loading
Loading
@@ -139,6 +139,7 @@ import '~/notes';
]);
 
notes = jasmine.createSpyObj('notes', [
'setupNewNote',
'refresh',
'collapseLongCommitList',
'updateNotesCount',
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment