1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-11-24 08:12:24 +02:00

All: Improved: Make sure user timestamp is preserved with revision information

This commit is contained in:
Laurent Cozic 2019-05-07 22:15:47 +01:00
parent c400142996
commit 52a2daddbf
2 changed files with 22 additions and 2 deletions

View File

@ -380,4 +380,24 @@ describe('services_Revision', function() {
expect((await Revision.all()).length).toBe(1);
}));
it('should preserve user update time', asyncTest(async () => {
// user_updated_time is kind of tricky and can be changed automatically in various
// places so make sure it is saved correctly with the revision
const n1_v0 = await Note.save({ title: '' });
const n1_v1 = await Note.save({ id: n1_v0.id, title: 'hello' });
await revisionService().collectRevisions(); // REV 1
expect((await Revision.all()).length).toBe(1);
const userUpdatedTime = Date.now() - 1000 * 60 * 60;
const n1_v2 = await Note.save({ id: n1_v0.id, title: 'hello', updated_time: Date.now(), user_updated_time: userUpdatedTime }, { autoTimestamp: false });
await revisionService().collectRevisions(); // Only the user timestamp has changed, but that needs to be saved
const revisions = await Revision.all();
expect(revisions.length).toBe(2);
const revNote = await revisionService().revisionNote(revisions, 1);
expect(revNote.user_updated_time).toBe(userUpdatedTime);
}));
});

View File

@ -62,8 +62,8 @@ class RevisionService extends BaseService {
if (!!rev.body_diff) return false;
const md = JSON.parse(rev.metadata_diff);
if (md.new && md.new.length) return false;
if (md.deleted && md.deleted.length) return false;
if (md.new && Object.keys(md.new).length) return false;
if (md.deleted && Object.keys(md.deleted).length) return false;
return true;
}