Fix test for delay after second library version conflict

This commit is contained in:
Dan Stillman 2019-05-26 03:45:09 -04:00
parent 1f1b2e9b27
commit c0e2aa03d3

View file

@ -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);
}); });