zotero/test/tests/syncEventListenersTest.js

49 lines
1.4 KiB
JavaScript

"use strict";
describe("Zotero.Sync.EventListeners", function () {
describe("AutoSyncListener", function () {
var originalTimeout;
before(function () {
originalTimeout = Zotero.Sync.EventListeners.AutoSyncListener._editTimeout;
assert.ok(originalTimeout);
// Set timeout to 1ms
Zotero.Sync.EventListeners.AutoSyncListener._editTimeout = 0.001;
Zotero.Prefs.set('sync.autoSync', true);
});
after(function () {
Zotero.Sync.EventListeners.AutoSyncListener._editTimeout = originalTimeout;
Zotero.Prefs.set('sync.autoSync', false);
Zotero.Prefs.clear('sync.librariesToSkip');
});
it("should sync only changed library", function* () {
var mock = sinon.mock(Zotero.Sync.Runner);
var expectation = mock.expects("setSyncTimeout").once();
var group = yield createGroup();
yield createDataObject('item', { libraryID: group.libraryID });
yield Zotero.Promise.delay(10);
mock.verify();
assert.sameMembers(expectation.getCall(0).args[2].libraries, [group.libraryID]);
});
it("shouldn't sync skipped library", function* () {
var mock = sinon.mock(Zotero.Sync.Runner);
var expectation = mock.expects("setSyncTimeout").never();
var group = yield createGroup();
Zotero.Prefs.set('sync.librariesToSkip', JSON.stringify(["G" + group.groupID]));
yield createDataObject('item', { libraryID: group.libraryID });
yield Zotero.Promise.delay(10);
mock.verify();
});
});
});