Don't auto-sync skipped libraries on change
This commit is contained in:
parent
599598566b
commit
cd3f621a00
|
@ -140,7 +140,11 @@ Zotero.Sync.EventListeners.AutoSyncListener = {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!libraryIDs.size) {
|
// Don't include skipped libraries
|
||||||
|
var skipped = new Set(Zotero.Sync.Data.Local.getSkippedLibraries());
|
||||||
|
libraryIDs = Array.from(libraryIDs.values()).filter(id => !skipped.has(id));
|
||||||
|
|
||||||
|
if (!libraryIDs.length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,7 +152,7 @@ Zotero.Sync.EventListeners.AutoSyncListener = {
|
||||||
this._editTimeout,
|
this._editTimeout,
|
||||||
false,
|
false,
|
||||||
{
|
{
|
||||||
libraries: libraryIDs.values()
|
libraries: libraryIDs
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
48
test/tests/syncEventListenersTest.js
Normal file
48
test/tests/syncEventListenersTest.js
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
"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(["L" + group.libraryID]));
|
||||||
|
yield createDataObject('item', { libraryID: group.libraryID });
|
||||||
|
|
||||||
|
yield Zotero.Promise.delay(10);
|
||||||
|
mock.verify();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user