From 8f1717e4b02dddd0b3733fb9a96e664b91014e90 Mon Sep 17 00:00:00 2001 From: dblythy Date: Thu, 11 Feb 2021 02:55:54 +1100 Subject: [PATCH 1/6] decode date --- src/__tests__/ParseObject-test.js | 5 +++++ src/decode.js | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/__tests__/ParseObject-test.js b/src/__tests__/ParseObject-test.js index 892e6fb11..10e268f8a 100644 --- a/src/__tests__/ParseObject-test.js +++ b/src/__tests__/ParseObject-test.js @@ -255,11 +255,13 @@ describe('ParseObject', () => { }); it('can be inflated from server JSON', () => { + const date = new Date(); const json = { className: 'Item', createdAt: '2013-12-14T04:51:19Z', objectId: 'I1', size: 'medium', + date: date }; const o = ParseObject.fromJSON(json); expect(o.className).toBe('Item'); @@ -268,8 +270,10 @@ describe('ParseObject', () => { size: 'medium', createdAt: new Date(Date.UTC(2013, 11, 14, 4, 51, 19)), updatedAt: new Date(Date.UTC(2013, 11, 14, 4, 51, 19)), + date }); expect(o.dirty()).toBe(false); + expect(o.get('date')).toBeInstanceOf(Date); }); it('can override old data when inflating from the server', () => { @@ -1239,6 +1243,7 @@ describe('ParseObject', () => { expect(o.op('count')).toBe(undefined); }); + it('can revert a specific field in unsaved ops', () => { const o = ParseObject.fromJSON({ className: 'Item', diff --git a/src/decode.js b/src/decode.js index ac4cca011..42512fba1 100644 --- a/src/decode.js +++ b/src/decode.js @@ -17,7 +17,7 @@ import { opFromJSON } from './ParseOp'; import ParseRelation from './ParseRelation'; export default function decode(value: any): any { - if (value === null || typeof value !== 'object') { + if (value === null || typeof value !== 'object' || value instanceof Date) { return value; } if (Array.isArray(value)) { From 47cfe3f666a34d85f01fd91664e1f50d300c5a3e Mon Sep 17 00:00:00 2001 From: dblythy Date: Thu, 11 Feb 2021 02:58:42 +1100 Subject: [PATCH 2/6] Update ParseObject-test.js --- src/__tests__/ParseObject-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/__tests__/ParseObject-test.js b/src/__tests__/ParseObject-test.js index 10e268f8a..0507709df 100644 --- a/src/__tests__/ParseObject-test.js +++ b/src/__tests__/ParseObject-test.js @@ -1243,7 +1243,7 @@ describe('ParseObject', () => { expect(o.op('count')).toBe(undefined); }); - + it('can revert a specific field in unsaved ops', () => { const o = ParseObject.fromJSON({ className: 'Item', From 6e51dae0fe93e65f5a75f9bb83ee49db05b7eae6 Mon Sep 17 00:00:00 2001 From: dblythy Date: Thu, 11 Feb 2021 03:19:57 +1100 Subject: [PATCH 3/6] Update ParseQuery-test.js --- src/__tests__/ParseQuery-test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/__tests__/ParseQuery-test.js b/src/__tests__/ParseQuery-test.js index c5d7f86fc..814140de4 100644 --- a/src/__tests__/ParseQuery-test.js +++ b/src/__tests__/ParseQuery-test.js @@ -3251,7 +3251,7 @@ describe('ParseQuery LocalDatastore', () => { updatedAt: new Date('2018-08-12T00:00:00.000Z'), }; - mockLocalDatastore._serializeObjectsFromPinName.mockImplementation(() => [obj1, obj2, obj3]); + mockLocalDatastore._serializeObjectsFromPinName.mockImplementation(() => [obj1, obj3, obj2]); mockLocalDatastore.checkIfEnabled.mockImplementation(() => true); @@ -3280,7 +3280,7 @@ describe('ParseQuery LocalDatastore', () => { expect(results[2].get('number')).toEqual(2); q = new ParseQuery('Item'); - q.descending('_created_at'); + q.ascending('_created_at'); q.fromLocalDatastore(); results = await q.find(); expect(results[0].get('number')).toEqual(2); @@ -3288,7 +3288,7 @@ describe('ParseQuery LocalDatastore', () => { expect(results[2].get('number')).toEqual(4); q = new ParseQuery('Item'); - q.descending('_updated_at'); + q.ascending('_updated_at'); q.fromLocalDatastore(); results = await q.find(); expect(results[0].get('number')).toEqual(2); From 2ca897cb5b22d83977b2f131b4f6612305070439 Mon Sep 17 00:00:00 2001 From: dblythy Date: Thu, 11 Feb 2021 03:57:21 +1100 Subject: [PATCH 4/6] Update ParseObject-test.js --- src/__tests__/ParseObject-test.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/__tests__/ParseObject-test.js b/src/__tests__/ParseObject-test.js index 0507709df..35ae591cd 100644 --- a/src/__tests__/ParseObject-test.js +++ b/src/__tests__/ParseObject-test.js @@ -1243,7 +1243,6 @@ describe('ParseObject', () => { expect(o.op('count')).toBe(undefined); }); - it('can revert a specific field in unsaved ops', () => { const o = ParseObject.fromJSON({ className: 'Item', From 943750e223e005860c2f84e6bf32f7ca436a6dcd Mon Sep 17 00:00:00 2001 From: dblythy Date: Thu, 11 Feb 2021 12:07:13 +1100 Subject: [PATCH 5/6] Update ParseQuery-test.js --- src/__tests__/ParseQuery-test.js | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/__tests__/ParseQuery-test.js b/src/__tests__/ParseQuery-test.js index 814140de4..6e451bc01 100644 --- a/src/__tests__/ParseQuery-test.js +++ b/src/__tests__/ParseQuery-test.js @@ -3251,7 +3251,16 @@ describe('ParseQuery LocalDatastore', () => { updatedAt: new Date('2018-08-12T00:00:00.000Z'), }; - mockLocalDatastore._serializeObjectsFromPinName.mockImplementation(() => [obj1, obj3, obj2]); + const obj4 = { + className: 'Item', + objectId: 'objectId3', + password: 123, + number: 4, + createdAt: new Date('2018-08-12T00:00:00.000Z'), + updatedAt: new Date('2018-08-12T00:00:00.000Z'), + }; + + mockLocalDatastore._serializeObjectsFromPinName.mockImplementation(() => [obj1, obj3, obj2, obj4]); mockLocalDatastore.checkIfEnabled.mockImplementation(() => true); @@ -3262,22 +3271,16 @@ describe('ParseQuery LocalDatastore', () => { expect(results[0].get('number')).toEqual(2); expect(results[1].get('number')).toEqual(3); expect(results[2].get('number')).toEqual(4); + expect(results[3].get('number')).toEqual(4); q = new ParseQuery('Item'); q.descending('number'); q.fromLocalDatastore(); results = await q.find(); expect(results[0].get('number')).toEqual(4); - expect(results[1].get('number')).toEqual(3); - expect(results[2].get('number')).toEqual(2); - - q = new ParseQuery('Item'); - q.descending('number'); - q.fromLocalDatastore(); - results = await q.find(); - expect(results[0].get('number')).toEqual(4); - expect(results[1].get('number')).toEqual(3); - expect(results[2].get('number')).toEqual(2); + expect(results[1].get('number')).toEqual(4); + expect(results[2].get('number')).toEqual(3); + expect(results[3].get('number')).toEqual(2); q = new ParseQuery('Item'); q.ascending('_created_at'); From 5229794857c9197fc9545ab108cc5dc62f6f2724 Mon Sep 17 00:00:00 2001 From: dblythy Date: Thu, 11 Feb 2021 12:08:27 +1100 Subject: [PATCH 6/6] Update ParseQuery-test.js --- src/__tests__/ParseQuery-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/__tests__/ParseQuery-test.js b/src/__tests__/ParseQuery-test.js index 6e451bc01..5aea441d4 100644 --- a/src/__tests__/ParseQuery-test.js +++ b/src/__tests__/ParseQuery-test.js @@ -3253,7 +3253,7 @@ describe('ParseQuery LocalDatastore', () => { const obj4 = { className: 'Item', - objectId: 'objectId3', + objectId: 'objectId4', password: 123, number: 4, createdAt: new Date('2018-08-12T00:00:00.000Z'),