Fix sync error after changing child item to top-level

This commit is contained in:
Dan Stillman 2016-05-15 03:34:06 -04:00
parent a7ea92fd52
commit a8ea8656d2
3 changed files with 26 additions and 0 deletions

View file

@ -138,6 +138,7 @@ Zotero.DataObjectUtilities = {
break;
case 'deleted':
case 'parentItem':
target[i] = false;
break;

View file

@ -201,6 +201,19 @@ describe("Zotero.Collection", function() {
})
})
describe("#toJSON()", function () {
it("should set 'parentCollection' to false when cleared", function* () {
var col1 = yield createDataObject('collection');
var col2 = yield createDataObject('collection', { parentID: col1.id });
// Create initial JSON with parentCollection
var patchBase = col2.toJSON();
// Clear parent collection and regenerate JSON
col2.parentID = false;
var json = col2.toJSON({ patchBase });
assert.isFalse(json.parentCollection);
});
});
describe("#getDescendents()", function () {
var collection0, collection1, collection2, collection3, item1, item2, item3;

View file

@ -1138,6 +1138,18 @@ describe("Zotero.Item", function () {
assert.isUndefined(json.title);
assert.strictEqual(json.deleted, 1);
})
it("should set 'parentItem' to false when cleared", function* () {
var item = yield createDataObject('item');
var note = new Zotero.Item('note');
note.parentID = item.id;
// Create initial JSON with parentItem
var patchBase = note.toJSON();
// Clear parent item and regenerate JSON
note.parentID = false;
var json = note.toJSON({ patchBase });
assert.isFalse(json.parentItem);
});
})
})