Skip to content

Commit 49e7974

Browse files
committed
Use a patched version of the js sdk
Solves problems with nested keys Expanded the regression test
1 parent 1874b22 commit 49e7974

File tree

3 files changed

+61
-24
lines changed

3 files changed

+61
-24
lines changed

package-lock.json

Lines changed: 25 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"mime": "2.5.2",
4848
"mongodb": "3.6.6",
4949
"mustache": "4.2.0",
50-
"parse": "3.2.0",
50+
"parse": "github:Ocell-io/Parse-SDK-JS#293011e0b537849b13d7488543f96c7c79f9b44f",
5151
"pg-monitor": "1.4.1",
5252
"pg-promise": "10.10.1",
5353
"pluralize": "8.0.0",

spec/ParseAPI.spec.js

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -696,26 +696,51 @@ describe('miscellaneous', function () {
696696
Parse.Cloud.afterSave('GameScore', function (req) {
697697
const object = req.object;
698698
expect(object instanceof Parse.Object).toBeTruthy();
699-
if (triggerTime == 0) {
699+
triggerTime++;
700+
if (triggerTime == 1) {
700701
// Create
701-
expect(object.get('a')).toEqual({ b: { c: 0 }, d: 0 });
702-
} else if (triggerTime == 1) {
703-
// Update
704-
expect(object.get('a')).toEqual({ b: { c: 1 }, d: 2 });
702+
expect(object.get('a')).toEqual({ b: 0, c: { d: 1 } });
703+
expect(object.get('e')).toEqual(2);
704+
} else if (triggerTime == 2) {
705+
// Update, increment
706+
expect(object.get('a')).toEqual({ b: 10, c: { d: 12 } });
707+
expect(object.get('e')).toEqual(14);
708+
} else if (triggerTime == 3) {
709+
// Update, set
710+
expect(object.get('a')).toEqual({ b: 100, c: { d: 200 } });
711+
expect(object.get('e')).toEqual(300);
712+
} else if (triggerTime == 4) {
713+
// Update, unset on a.c.d
714+
console.log(JSON.serialize(object.get('a')));
715+
expect(object.get('a')).toEqual({ b: 100, c: {} });
716+
expect(object.get('e')).toEqual(300);
717+
} else if (triggerTime == 5) {
718+
// Update, unset on a.b
719+
expect(object.get('a')).toEqual({ c: {} });
720+
expect(object.get('e')).toEqual(300);
705721
} else {
706722
throw new Error();
707723
}
708-
triggerTime++;
709724
});
710725

711726
const obj = new Parse.Object('GameScore');
712-
obj.set('a', { b: { c: 0 }, d: 0 });
727+
obj.set('a', { b: 0, c: { d: 1 } });
728+
obj.set('e', 2);
729+
await obj.save();
730+
obj.increment('a.b', 10);
731+
obj.increment('a.c.d', 11);
732+
obj.increment('e', 12);
733+
await obj.save();
734+
obj.set('a.b', 100);
735+
obj.set('a.c.d', 200);
736+
obj.set('e', 300);
737+
await obj.save();
738+
obj.unset('a.c.d');
713739
await obj.save();
714-
obj.set('a.b.c', 1);
715-
obj.set('a.d', 2);
740+
obj.unset('a.b');
716741
await obj.save();
717742
// Make sure the checking has been triggered
718-
expect(triggerTime).toBe(2);
743+
expect(triggerTime).toBe(5);
719744
});
720745

721746
it('test afterSave get original object on update', function (done) {

0 commit comments

Comments
 (0)