Don't repeatedly upload relations

Fixes #2772
This commit is contained in:
Dan Stillman 2022-08-22 01:11:11 -04:00
parent 999f78b0f5
commit f4dfea6849
2 changed files with 37 additions and 1 deletions

View file

@ -275,7 +275,7 @@ Zotero.DataObjectUtilities = {
var pred2 = Object.keys(data2);
pred2.sort();
if (!Zotero.Utilities.arrayEquals(pred1, pred2)) return true;
for (let pred in pred1) {
for (let pred of pred1) {
let vals1 = typeof data1[pred] == 'string' ? [data1[pred]] : data1[pred];
let vals2 = (!data2[pred] || data2[pred] === '')
? []

View file

@ -59,6 +59,42 @@ describe("Zotero.DataObjectUtilities", function() {
// place was already empty, so it shouldn't be included
assert.notProperty(obj, 'place');
});
it("shouldn't include relations that haven't changed", function () {
var patchBase = {
title: "Old Title",
relations: {
"mendeleyDB:documentUUID": "6b97abe6-8e23-4471-b963-234cf26808b9"
}
};
var obj = {
title: "New Title",
relations: {
"mendeleyDB:documentUUID": "6b97abe6-8e23-4471-b963-234cf26808b9"
}
}
obj = Zotero.DataObjectUtilities.patch(patchBase, obj);
assert.notProperty(obj, 'relations');
});
it("shouldn't include relations that only switched from string to array", function () {
var patchBase = {
title: "Old Title",
relations: {
"mendeleyDB:documentUUID": "6b97abe6-8e23-4471-b963-234cf26808b9"
}
};
var obj = {
title: "New Title",
relations: {
"mendeleyDB:documentUUID": [
"6b97abe6-8e23-4471-b963-234cf26808b9"
]
}
}
obj = Zotero.DataObjectUtilities.patch(patchBase, obj);
assert.notProperty(obj, 'relations');
});
})
describe("#diff()", function () {