Fix tag diffing
This commit is contained in:
parent
3f4eebe51c
commit
f727b224e7
|
@ -543,7 +543,9 @@ Zotero.DataObjects.prototype._diffCollections = function (data1, data2) {
|
||||||
Zotero.DataObjects.prototype._diffTags = function (data1, data2) {
|
Zotero.DataObjects.prototype._diffTags = function (data1, data2) {
|
||||||
if (data1.length != data2.length) return false;
|
if (data1.length != data2.length) return false;
|
||||||
for (let i = 0; i < data1.length; i++) {
|
for (let i = 0; i < data1.length; i++) {
|
||||||
if (c1.tag !== c2.tag || (c1.type || 0) !== (c2.type || 0)) {
|
let t1 = data1[i];
|
||||||
|
let t2 = data2[i];
|
||||||
|
if (t1.tag !== t2.tag || (t1.type || 0) !== (t2.type || 0)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,5 +66,45 @@ describe("Zotero.DataObjects", function() {
|
||||||
var diff = Zotero.Items.diff(json1, json2);
|
var diff = Zotero.Items.diff(json1, json2);
|
||||||
assert.isFalse(diff);
|
assert.isFalse(diff);
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it("should show tags of different types as different", function* () {
|
||||||
|
var json1 = {
|
||||||
|
tags: [
|
||||||
|
{
|
||||||
|
tag: "Foo"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
var json2 = {
|
||||||
|
tags: [
|
||||||
|
{
|
||||||
|
tag: "Foo",
|
||||||
|
type: 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
var diff = Zotero.Items.diff(json1, json2);
|
||||||
|
assert.isFalse(diff);
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should not show manual tags as different without 'type' property", function* () {
|
||||||
|
var json1 = {
|
||||||
|
tags: [
|
||||||
|
{
|
||||||
|
tag: "Foo"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
var json2 = {
|
||||||
|
tags: [
|
||||||
|
{
|
||||||
|
tag: "Foo",
|
||||||
|
type: 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
var diff = Zotero.Items.diff(json1, json2);
|
||||||
|
assert.isFalse(diff);
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user