Skip to content
This repository was archived by the owner on Jul 31, 2020. It is now read-only.

Commit efa2bec

Browse files
authored
Merge pull request #126 from brave/fix/107
fix discrepancy between Android and Laptop RESOLVED_SYNC_RECORDS
2 parents 04fd995 + 4aa62a2 commit efa2bec

File tree

5 files changed

+37
-1
lines changed

5 files changed

+37
-1
lines changed

client/recordUtil.js

+17
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,17 @@ const pickFields = (object, fields) => {
114114
}, {})
115115
}
116116

117+
/**
118+
* Converts [] parentFolderObjectIds fields to null in place. Fix #107.
119+
* @param {Object} record
120+
*/
121+
const normalizeBookmark = (record) => {
122+
if (record && record.bookmark && record.bookmark.parentFolderObjectId &&
123+
!record.bookmark.parentFolderObjectId.length) {
124+
record.bookmark.parentFolderObjectId = null
125+
}
126+
}
127+
117128
/**
118129
* Given a SyncRecord and a browser's matching existing object, resolve
119130
* objectData to the final object that should be applied by the browser.
@@ -262,6 +273,12 @@ const mergeRecords = (recordsAndObjects) => {
262273
*/
263274
module.exports.resolveRecords = (recordsAndExistingObjects) => {
264275
let resolvedRecords = []
276+
recordsAndExistingObjects.forEach((item) => {
277+
if (item) {
278+
normalizeBookmark(item[0])
279+
normalizeBookmark(item[1])
280+
}
281+
})
265282
const merged = mergeRecords(recordsAndExistingObjects)
266283
merged.forEach(([record, existingObject]) => {
267284
const resolved = this.resolve(record, existingObject)

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
"standard": {
6969
"ignore": [
7070
"test/crypto.js",
71+
"test/client/fixtures/*.js",
7172
"bundles/*.js",
7273
"client/polyfill/*.js",
7374
"lib/api.proto.js",

test/client/fixtures/resolveAndroid.js

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/client/fixtures/resolveLaptop.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)