|
1 | 1 | 'use strict'; |
2 | 2 |
|
3 | 3 | const assert = require('assert'); |
4 | | -const Parse = require('../../node'); |
5 | 4 |
|
6 | 5 | global.localStorage = require('./mockLocalStorage'); |
| 6 | +global.WebSocket = require('ws'); |
7 | 7 | const mockRNStorage = require('./mockRNStorage'); |
8 | | -const LocalDatastoreUtils = require('../../lib/node/LocalDatastoreUtils'); |
| 8 | +const serverURL = 'http://localhost:1337/parse'; |
9 | 9 |
|
10 | | -const { DEFAULT_PIN, PIN_PREFIX, isLocalDatastoreKey } = LocalDatastoreUtils; |
| 10 | +function runTest(controller) { |
| 11 | + const Parse = require(`../../${controller.name}`); |
| 12 | + const LocalDatastoreUtils = require('../../lib/node/LocalDatastoreUtils'); |
11 | 13 |
|
12 | | -function LDS_KEY(object) { |
13 | | - return Parse.LocalDatastore.getKeyForObject(object); |
14 | | -} |
15 | | -function LDS_FULL_JSON(object) { |
16 | | - const json = object._toFullJSON(); |
17 | | - if (object._localId) { |
18 | | - json._localId = object._localId; |
| 14 | + const { DEFAULT_PIN, PIN_PREFIX, isLocalDatastoreKey } = LocalDatastoreUtils; |
| 15 | + |
| 16 | + const Item = Parse.Object.extend('Item'); |
| 17 | + const TestObject = Parse.Object.extend('TestObject'); |
| 18 | + |
| 19 | + function LDS_KEY(object) { |
| 20 | + return Parse.LocalDatastore.getKeyForObject(object); |
19 | 21 | } |
20 | | - return json; |
21 | | -} |
22 | | -function runTest(controller) { |
| 22 | + function LDS_FULL_JSON(object) { |
| 23 | + const json = object._toFullJSON(); |
| 24 | + if (object._localId) { |
| 25 | + json._localId = object._localId; |
| 26 | + } |
| 27 | + return json; |
| 28 | + } |
| 29 | + |
23 | 30 | describe(`Parse Object Pinning (${controller.name})`, () => { |
24 | 31 | beforeEach(async () => { |
25 | 32 | const StorageController = require(controller.file); |
26 | 33 | Parse.CoreManager.setAsyncStorage(mockRNStorage); |
27 | 34 | Parse.CoreManager.setLocalDatastoreController(StorageController); |
28 | | - Parse.enableLocalDatastore(); |
| 35 | + Parse.CoreManager.setEventEmitter(require('events').EventEmitter); |
| 36 | + Parse.User.enableUnsafeCurrentUser(); |
29 | 37 | await Parse.LocalDatastore._clear(); |
| 38 | + Parse.initialize('integration'); |
| 39 | + Parse.CoreManager.set('SERVER_URL', serverURL); |
| 40 | + Parse.CoreManager.set('MASTER_KEY', 'notsosecret'); |
| 41 | + const RESTController = Parse.CoreManager.getRESTController(); |
| 42 | + RESTController._setXHR(require('xmlhttprequest').XMLHttpRequest); |
| 43 | + Parse.enableLocalDatastore(); |
30 | 44 | }); |
| 45 | + |
31 | 46 | function getStorageCount(storage) { |
32 | 47 | return Object.keys(storage).reduce((acc, key) => acc + (isLocalDatastoreKey(key) ? 1 : 0), 1); |
33 | 48 | } |
| 49 | + |
34 | 50 | it(`${controller.name} can clear localDatastore`, async () => { |
35 | 51 | const obj1 = new TestObject(); |
36 | 52 | const obj2 = new TestObject(); |
@@ -1060,8 +1076,15 @@ function runTest(controller) { |
1060 | 1076 | const StorageController = require(controller.file); |
1061 | 1077 | Parse.CoreManager.setAsyncStorage(mockRNStorage); |
1062 | 1078 | Parse.CoreManager.setLocalDatastoreController(StorageController); |
1063 | | - Parse.enableLocalDatastore(); |
| 1079 | + Parse.CoreManager.setEventEmitter(require('events').EventEmitter); |
1064 | 1080 | Parse.LocalDatastore._clear(); |
| 1081 | + Parse.User.enableUnsafeCurrentUser(); |
| 1082 | + Parse.initialize('integration'); |
| 1083 | + Parse.CoreManager.set('SERVER_URL', serverURL); |
| 1084 | + Parse.CoreManager.set('MASTER_KEY', 'notsosecret'); |
| 1085 | + const RESTController = Parse.CoreManager.getRESTController(); |
| 1086 | + RESTController._setXHR(require('xmlhttprequest').XMLHttpRequest); |
| 1087 | + Parse.enableLocalDatastore(); |
1065 | 1088 |
|
1066 | 1089 | const numbers = []; |
1067 | 1090 | for (let i = 0; i < 10; i++) { |
@@ -2949,20 +2972,10 @@ function runTest(controller) { |
2949 | 2972 | } |
2950 | 2973 |
|
2951 | 2974 | describe('Parse LocalDatastore', () => { |
2952 | | - beforeEach(() => { |
2953 | | - Parse.CoreManager.getInstallationController()._setInstallationIdCache('1234'); |
2954 | | - Parse.enableLocalDatastore(); |
2955 | | - Parse.User.enableUnsafeCurrentUser(); |
2956 | | - }); |
2957 | | - |
2958 | 2975 | const controllers = [ |
2959 | | - { name: 'Default', file: '../../lib/node/LocalDatastoreController' }, |
2960 | | - { |
2961 | | - name: 'React-Native', |
2962 | | - file: '../../lib/node/LocalDatastoreController.react-native', |
2963 | | - }, |
| 2976 | + { name: 'node', file: '../../lib/node/LocalDatastoreController' }, |
| 2977 | + { name: 'react-native', file: '../../lib/react-native/LocalDatastoreController.react-native' }, |
2964 | 2978 | ]; |
2965 | | - |
2966 | 2979 | for (let i = 0; i < controllers.length; i += 1) { |
2967 | 2980 | const controller = controllers[i]; |
2968 | 2981 | runTest(controller); |
|
0 commit comments