syncEventListenersTest.js (1472B)
1 "use strict"; 2 3 describe("Zotero.Sync.EventListeners", function () { 4 describe("AutoSyncListener", function () { 5 var originalTimeout; 6 7 before(function () { 8 originalTimeout = Zotero.Sync.EventListeners.AutoSyncListener._editTimeout; 9 assert.ok(originalTimeout); 10 // Set timeout to 1ms 11 Zotero.Sync.EventListeners.AutoSyncListener._editTimeout = 0.001; 12 Zotero.Prefs.set('sync.autoSync', true); 13 }); 14 15 16 after(function () { 17 Zotero.Sync.EventListeners.AutoSyncListener._editTimeout = originalTimeout; 18 Zotero.Prefs.set('sync.autoSync', false); 19 Zotero.Prefs.clear('sync.librariesToSkip'); 20 }); 21 22 23 it("should sync only changed library", function* () { 24 var mock = sinon.mock(Zotero.Sync.Runner); 25 var expectation = mock.expects("setSyncTimeout").once(); 26 27 var group = yield createGroup(); 28 yield createDataObject('item', { libraryID: group.libraryID }); 29 30 yield Zotero.Promise.delay(10); 31 mock.verify(); 32 assert.sameMembers(expectation.getCall(0).args[2].libraries, [group.libraryID]); 33 }); 34 35 36 it("shouldn't sync skipped library", function* () { 37 var mock = sinon.mock(Zotero.Sync.Runner); 38 var expectation = mock.expects("setSyncTimeout").never(); 39 40 var group = yield createGroup(); 41 Zotero.Prefs.set('sync.librariesToSkip', JSON.stringify(["G" + group.groupID])); 42 yield createDataObject('item', { libraryID: group.libraryID }); 43 44 yield Zotero.Promise.delay(10); 45 mock.verify(); 46 }); 47 }); 48 });