Close #930, [API Syncing] Sync synced settings
This commit is contained in:
parent
97f3854662
commit
3dabd63a0a
4 changed files with 175 additions and 2 deletions
|
@ -289,6 +289,9 @@ describe("Zotero.Sync.Data.Engine", function () {
|
|||
var lastLibraryVersion = 5;
|
||||
yield Zotero.Libraries.setVersion(libraryID, lastLibraryVersion);
|
||||
|
||||
yield Zotero.SyncedSettings.set(libraryID, "testSetting1", { foo: "bar" });
|
||||
yield Zotero.SyncedSettings.set(libraryID, "testSetting2", { bar: "foo" });
|
||||
|
||||
var types = Zotero.DataObjectUtilities.getTypes();
|
||||
var objects = {};
|
||||
var objectResponseJSON = {};
|
||||
|
@ -305,6 +308,26 @@ describe("Zotero.Sync.Data.Engine", function () {
|
|||
req.requestHeaders["If-Unmodified-Since-Version"], lastLibraryVersion
|
||||
);
|
||||
|
||||
// Both settings should be uploaded
|
||||
if (req.url == baseURL + "users/1/settings") {
|
||||
let json = JSON.parse(req.requestBody);
|
||||
assert.lengthOf(Object.keys(json), 2);
|
||||
assert.property(json, "testSetting1");
|
||||
assert.property(json, "testSetting2");
|
||||
assert.property(json.testSetting1, "value");
|
||||
assert.property(json.testSetting2, "value");
|
||||
assert.propertyVal(json.testSetting1.value, "foo", "bar");
|
||||
assert.propertyVal(json.testSetting2.value, "bar", "foo");
|
||||
req.respond(
|
||||
204,
|
||||
{
|
||||
"Last-Modified-Version": ++lastLibraryVersion
|
||||
},
|
||||
""
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
for (let type of types) {
|
||||
let typePlural = Zotero.DataObjectUtilities.getObjectTypePlural(type);
|
||||
if (req.url == baseURL + "users/1/" + typePlural) {
|
||||
|
@ -344,6 +367,8 @@ describe("Zotero.Sync.Data.Engine", function () {
|
|||
|
||||
yield engine.start();
|
||||
|
||||
yield Zotero.SyncedSettings.set(libraryID, "testSetting2", { bar: "bar" });
|
||||
|
||||
assert.equal(Zotero.Libraries.getVersion(libraryID), lastLibraryVersion);
|
||||
for (let type of types) {
|
||||
// Make sure objects were set to the correct version and marked as synced
|
||||
|
@ -368,6 +393,23 @@ describe("Zotero.Sync.Data.Engine", function () {
|
|||
req.requestHeaders["If-Unmodified-Since-Version"], lastLibraryVersion
|
||||
);
|
||||
|
||||
// Modified setting should be uploaded
|
||||
if (req.url == baseURL + "users/1/settings") {
|
||||
let json = JSON.parse(req.requestBody);
|
||||
assert.lengthOf(Object.keys(json), 1);
|
||||
assert.property(json, "testSetting2");
|
||||
assert.property(json.testSetting2, "value");
|
||||
assert.propertyVal(json.testSetting2.value, "bar", "bar");
|
||||
req.respond(
|
||||
204,
|
||||
{
|
||||
"Last-Modified-Version": ++lastLibraryVersion
|
||||
},
|
||||
""
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
for (let type of types) {
|
||||
let typePlural = Zotero.DataObjectUtilities.getObjectTypePlural(type);
|
||||
if (req.url == baseURL + "users/1/" + typePlural) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue