Merge "Ensure all drafts are moved after comments during sorting"
This commit is contained in:
@@ -640,17 +640,20 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_sortComments(comments) {
|
||||||
|
return comments.slice(0).sort((a, b) => {
|
||||||
|
if (b.__draft && !a.__draft ) { return -1; }
|
||||||
|
if (a.__draft && !b.__draft ) { return 1; }
|
||||||
|
return util.parseDate(a.updated) - util.parseDate(b.updated);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {!Array<!Object>} comments
|
* @param {!Array<!Object>} comments
|
||||||
* @return {!Array<!Object>} Threads for the given comments.
|
* @return {!Array<!Object>} Threads for the given comments.
|
||||||
*/
|
*/
|
||||||
_createThreads(comments) {
|
_createThreads(comments) {
|
||||||
const sortedComments = comments.slice(0).sort((a, b) => {
|
const sortedComments = this._sortComments(comments);
|
||||||
if (b.__draft && !a.__draft ) { return 0; }
|
|
||||||
if (a.__draft && !b.__draft ) { return 1; }
|
|
||||||
return util.parseDate(a.updated) - util.parseDate(b.updated);
|
|
||||||
});
|
|
||||||
|
|
||||||
const threads = [];
|
const threads = [];
|
||||||
for (const comment of sortedComments) {
|
for (const comment of sortedComments) {
|
||||||
// If the comment is in reply to another comment, find that comment's
|
// If the comment is in reply to another comment, find that comment's
|
||||||
|
|||||||
@@ -1102,6 +1102,36 @@ limitations under the License.
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('comments sorting', () => {
|
||||||
|
const comments = [
|
||||||
|
{
|
||||||
|
id: 'new_draft',
|
||||||
|
message: 'i do not like either of you',
|
||||||
|
__commentSide: 'left',
|
||||||
|
__draft: true,
|
||||||
|
updated: '2015-12-20 15:01:20.396000000',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'sallys_confession',
|
||||||
|
message: 'i like you, jack',
|
||||||
|
updated: '2015-12-23 15:00:20.396000000',
|
||||||
|
line: 1,
|
||||||
|
__commentSide: 'left',
|
||||||
|
}, {
|
||||||
|
id: 'jacks_reply',
|
||||||
|
message: 'i like you, too',
|
||||||
|
updated: '2015-12-24 15:01:20.396000000',
|
||||||
|
__commentSide: 'left',
|
||||||
|
line: 1,
|
||||||
|
in_reply_to: 'sallys_confession',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const sortedComments = element._sortComments(comments);
|
||||||
|
assert.equal(sortedComments[0], comments[1]);
|
||||||
|
assert.equal(sortedComments[1], comments[2]);
|
||||||
|
assert.equal(sortedComments[2], comments[0]);
|
||||||
|
});
|
||||||
|
|
||||||
test('_createThreads', () => {
|
test('_createThreads', () => {
|
||||||
const comments = [
|
const comments = [
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user