Skip to content

Commit 3551a06

Browse files
authored
fromJSON: Return date if value is a date (#1293)
* decode date * Update ParseObject-test.js * Update ParseQuery-test.js * Update ParseObject-test.js * Update ParseQuery-test.js * Update ParseQuery-test.js
1 parent 3d7d269 commit 3551a06

File tree

3 files changed

+21
-14
lines changed

3 files changed

+21
-14
lines changed

src/__tests__/ParseObject-test.js

+4
Original file line numberDiff line numberDiff line change
@@ -256,11 +256,13 @@ describe('ParseObject', () => {
256256
});
257257

258258
it('can be inflated from server JSON', () => {
259+
const date = new Date();
259260
const json = {
260261
className: 'Item',
261262
createdAt: '2013-12-14T04:51:19Z',
262263
objectId: 'I1',
263264
size: 'medium',
265+
date: date
264266
};
265267
const o = ParseObject.fromJSON(json);
266268
expect(o.className).toBe('Item');
@@ -269,8 +271,10 @@ describe('ParseObject', () => {
269271
size: 'medium',
270272
createdAt: new Date(Date.UTC(2013, 11, 14, 4, 51, 19)),
271273
updatedAt: new Date(Date.UTC(2013, 11, 14, 4, 51, 19)),
274+
date
272275
});
273276
expect(o.dirty()).toBe(false);
277+
expect(o.get('date')).toBeInstanceOf(Date);
274278
});
275279

276280
it('can override old data when inflating from the server', () => {

src/__tests__/ParseQuery-test.js

+16-13
Original file line numberDiff line numberDiff line change
@@ -3251,7 +3251,16 @@ describe('ParseQuery LocalDatastore', () => {
32513251
updatedAt: new Date('2018-08-12T00:00:00.000Z'),
32523252
};
32533253

3254-
mockLocalDatastore._serializeObjectsFromPinName.mockImplementation(() => [obj1, obj2, obj3]);
3254+
const obj4 = {
3255+
className: 'Item',
3256+
objectId: 'objectId4',
3257+
password: 123,
3258+
number: 4,
3259+
createdAt: new Date('2018-08-12T00:00:00.000Z'),
3260+
updatedAt: new Date('2018-08-12T00:00:00.000Z'),
3261+
};
3262+
3263+
mockLocalDatastore._serializeObjectsFromPinName.mockImplementation(() => [obj1, obj3, obj2, obj4]);
32553264

32563265
mockLocalDatastore.checkIfEnabled.mockImplementation(() => true);
32573266

@@ -3262,33 +3271,27 @@ describe('ParseQuery LocalDatastore', () => {
32623271
expect(results[0].get('number')).toEqual(2);
32633272
expect(results[1].get('number')).toEqual(3);
32643273
expect(results[2].get('number')).toEqual(4);
3274+
expect(results[3].get('number')).toEqual(4);
32653275

32663276
q = new ParseQuery('Item');
32673277
q.descending('number');
32683278
q.fromLocalDatastore();
32693279
results = await q.find();
32703280
expect(results[0].get('number')).toEqual(4);
3271-
expect(results[1].get('number')).toEqual(3);
3272-
expect(results[2].get('number')).toEqual(2);
3273-
3274-
q = new ParseQuery('Item');
3275-
q.descending('number');
3276-
q.fromLocalDatastore();
3277-
results = await q.find();
3278-
expect(results[0].get('number')).toEqual(4);
3279-
expect(results[1].get('number')).toEqual(3);
3280-
expect(results[2].get('number')).toEqual(2);
3281+
expect(results[1].get('number')).toEqual(4);
3282+
expect(results[2].get('number')).toEqual(3);
3283+
expect(results[3].get('number')).toEqual(2);
32813284

32823285
q = new ParseQuery('Item');
3283-
q.descending('_created_at');
3286+
q.ascending('_created_at');
32843287
q.fromLocalDatastore();
32853288
results = await q.find();
32863289
expect(results[0].get('number')).toEqual(2);
32873290
expect(results[1].get('number')).toEqual(3);
32883291
expect(results[2].get('number')).toEqual(4);
32893292

32903293
q = new ParseQuery('Item');
3291-
q.descending('_updated_at');
3294+
q.ascending('_updated_at');
32923295
q.fromLocalDatastore();
32933296
results = await q.find();
32943297
expect(results[0].get('number')).toEqual(2);

src/decode.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { opFromJSON } from './ParseOp';
1717
import ParseRelation from './ParseRelation';
1818

1919
export default function decode(value: any): any {
20-
if (value === null || typeof value !== 'object') {
20+
if (value === null || typeof value !== 'object' || value instanceof Date) {
2121
return value;
2222
}
2323
if (Array.isArray(value)) {

0 commit comments

Comments
 (0)