Fix test for delay after second library version conflict
This commit is contained in:
parent
1f1b2e9b27
commit
c0e2aa03d3
1 changed files with 25 additions and 15 deletions
|
@ -1699,20 +1699,18 @@ describe("Zotero.Sync.Data.Engine", function () {
|
||||||
var item = yield createDataObject('item');
|
var item = yield createDataObject('item');
|
||||||
|
|
||||||
var lastLibraryVersion = 5;
|
var lastLibraryVersion = 5;
|
||||||
var calls = 0;
|
var postCalls = 0;
|
||||||
|
var settingsCalls = 0;
|
||||||
var t;
|
var t;
|
||||||
server.respond(function (req) {
|
server.respond(function (req) {
|
||||||
if (req.method == "POST") {
|
|
||||||
calls++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// On first and second upload attempts, return 412
|
// On first and second upload attempts, return 412
|
||||||
if (req.method == "POST" && req.url.startsWith(baseURL + "users/1/items")) {
|
if (req.method == "POST") {
|
||||||
if (calls == 1 || calls == 2) {
|
if (!req.url.startsWith(baseURL + "users/1/items")) {
|
||||||
if (calls == 2) {
|
throw new Error("Unexpected POST");
|
||||||
assert.isAbove(new Date() - t, 50);
|
}
|
||||||
}
|
postCalls++;
|
||||||
t = new Date();
|
// 1st and 2nd requests
|
||||||
|
if (postCalls == 1 || postCalls == 2) {
|
||||||
req.respond(
|
req.respond(
|
||||||
412,
|
412,
|
||||||
{
|
{
|
||||||
|
@ -1721,24 +1719,34 @@ describe("Zotero.Sync.Data.Engine", function () {
|
||||||
""
|
""
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
// 3rd request
|
||||||
else {
|
else {
|
||||||
|
let json = item.toResponseJSON();
|
||||||
|
json.version = ++lastLibraryVersion;
|
||||||
req.respond(
|
req.respond(
|
||||||
200,
|
200,
|
||||||
{
|
{
|
||||||
"Last-Modified-Version": ++lastLibraryVersion
|
"Last-Modified-Version": json.version
|
||||||
},
|
},
|
||||||
JSON.stringify({
|
JSON.stringify({
|
||||||
successful: {
|
successful: {
|
||||||
"0": item.toResponseJSON()
|
"0": json
|
||||||
},
|
},
|
||||||
unchanged: {},
|
unchanged: {},
|
||||||
failed: {}
|
failed: {}
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
t = new Date();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (req.method == "GET") {
|
if (req.method == "GET") {
|
||||||
|
if (req.url.startsWith(baseURL + "users/1/settings")) {
|
||||||
|
settingsCalls++;
|
||||||
|
if (settingsCalls == 2) {
|
||||||
|
assert.isAbove(new Date() - t, 75);
|
||||||
|
}
|
||||||
|
}
|
||||||
req.respond(
|
req.respond(
|
||||||
200,
|
200,
|
||||||
{
|
{
|
||||||
|
@ -1746,14 +1754,16 @@ describe("Zotero.Sync.Data.Engine", function () {
|
||||||
},
|
},
|
||||||
JSON.stringify({})
|
JSON.stringify({})
|
||||||
);
|
);
|
||||||
|
t = new Date();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Zotero.Sync.Data.conflictDelayIntervals = [50, 70000];
|
Zotero.Sync.Data.conflictDelayIntervals = [75, 70000];
|
||||||
yield engine.start();
|
yield engine.start();
|
||||||
|
|
||||||
assert.equal(calls, 3);
|
assert.equal(postCalls, 3);
|
||||||
|
assert.equal(settingsCalls, 2);
|
||||||
assert.isTrue(item.synced);
|
assert.isTrue(item.synced);
|
||||||
assert.equal(library.libraryVersion, lastLibraryVersion);
|
assert.equal(library.libraryVersion, lastLibraryVersion);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue