Skip to content

Commit 3c913ce

Browse files
committed
1 parent 255d531 commit 3c913ce

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

src/__tests__/ParseObject-test.js

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,6 @@ describe('ParseObject', () => {
507507
data: { foo: 'bar' },
508508
});
509509
expect(o.dirty()).toBe(false);
510-
expect(o.dirty()).toBe(false);
511510
expect(o.has('data')).toBe(true);
512511

513512
o.set('data.score', 10);
@@ -519,6 +518,33 @@ describe('ParseObject', () => {
519518
expect(o.dirty('data')).toBe(true);
520519
});
521520

521+
it('can set multiple nested fields (regression test for #1450)', () => {
522+
const o = new ParseObject('Person');
523+
o._finishFetch({
524+
objectId: 'setNested2_1450',
525+
objectField: {
526+
number: 5,
527+
letter: 'a',
528+
},
529+
});
530+
531+
expect(o.attributes).toEqual({
532+
objectField: { number: 5, letter: 'a' },
533+
});
534+
o.set('objectField.number', 20);
535+
o.set('objectField.letter', 'b');
536+
537+
expect(o.attributes).toEqual({
538+
objectField: { number: 20, letter: 'b' },
539+
});
540+
expect(o.op('objectField.number') instanceof SetOp).toBe(true);
541+
expect(o.dirtyKeys()).toEqual(['objectField.number', 'objectField.letter', 'objectField']);
542+
expect(o._getSaveJSON()).toEqual({
543+
'objectField.number': 20,
544+
'objectField.letter': 'b',
545+
});
546+
});
547+
522548
it('can tell if a field is dirty', () => {
523549
const o = new ParseObject('Person');
524550
o._finishFetch({

0 commit comments

Comments
 (0)