Fix zero local data object versions (#6016)

(cherry picked from commit b8fdee865a)
This commit is contained in:
Maximilian Schmidt 2026-08-13 17:23:05 +02:00 committed by Dan Stillman
parent 4f5b05f0a4
commit a1be174c28
4 changed files with 18 additions and 0 deletions

View file

@ -140,6 +140,7 @@ Zotero.Collection.prototype.loadFromRow = function (row) {
// Integer or 0
case 'version':
case 'clientVersion':
val = val ? parseInt(val) : 0;
break;

View file

@ -375,6 +375,7 @@ Zotero.Item.prototype._parseRowData = function (row) {
// Integer or 0
case 'version':
case 'clientVersion':
val = val ? parseInt(val) : 0;
break;

View file

@ -143,6 +143,7 @@ Zotero.Search.prototype.loadFromRow = function (row) {
// Integer or 0
case 'version':
case 'clientVersion':
val = val ? parseInt(val) : 0;
break;

View file

@ -61,6 +61,21 @@ describe("Zotero.DataObject", function () {
}
});
it("should load 0 as a number", async function () {
for (let type of types) {
let objectsClass = Zotero.DataObjectUtilities.getObjectsClassForObjectType(type);
let obj = await createDataObject(type);
let id = obj.id;
await Zotero.DB.queryAsync(
`UPDATE ${objectsClass.table} SET clientVersion=0 WHERE ${objectsClass.idColumn}=?`,
id
);
objectsClass.unload(id);
obj = await objectsClass.getAsync(id);
assert.strictEqual(obj.clientVersion, 0, type + " clientVersion mismatch");
}
});
it("should increase after modifying object", async function () {
for (let type of types) {
let obj = await createDataObject(type);