diff --git a/package.json b/package.json index 434bbde2b1..2e9aa90145 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "lodash": "4.17.4", "lru-cache": "4.0.2", "mime": "1.3.4", - "mongodb": "2.2.10", + "mongodb": "2.2.20", "multer": "1.2.1", "parse": "1.9.2", "parse-server-fs-adapter": "1.0.1", diff --git a/spec/ParseQuery.spec.js b/spec/ParseQuery.spec.js index 45e522e761..b17d58366c 100644 --- a/spec/ParseQuery.spec.js +++ b/spec/ParseQuery.spec.js @@ -1631,8 +1631,9 @@ describe('Parse.Query testing', () => { }); expect(total).toBe(0); done() - }, () => { + }, (e) => { fail('should not fail'); + fail(JSON.stringify(e)); done(); }) }); diff --git a/spec/ParseRelation.spec.js b/spec/ParseRelation.spec.js index 6adbe38450..2702d4c70a 100644 --- a/spec/ParseRelation.spec.js +++ b/spec/ParseRelation.spec.js @@ -575,6 +575,9 @@ describe('Parse.Relation testing', () => { expect(result.get('key').get('even')).toBe(false); }); done(); + }, (e) => { + fail(JSON.stringify(e)); + done(); }) }); @@ -613,6 +616,9 @@ describe('Parse.Relation testing', () => { done(); } })); + }, (e) => { + fail(JSON.stringify(e)); + done(); }); }); @@ -653,6 +659,9 @@ describe('Parse.Relation testing', () => { done(); } })); + }, (e) => { + fail(JSON.stringify(e)); + done(); }); }); diff --git a/src/Controllers/SchemaController.js b/src/Controllers/SchemaController.js index 9eee5ca458..f94f4a1629 100644 --- a/src/Controllers/SchemaController.js +++ b/src/Controllers/SchemaController.js @@ -333,25 +333,29 @@ export default class SchemaController { if (this.reloadDataPromise && !options.clearCache) { return this.reloadDataPromise; } - this.data = {}; - this.perms = {}; this.reloadDataPromise = promise.then(() => { return this.getAllClasses(options); }) .then(allSchemas => { + const data = {}; + const perms = {}; allSchemas.forEach(schema => { - this.data[schema.className] = injectDefaultSchema(schema).fields; - this.perms[schema.className] = schema.classLevelPermissions; + data[schema.className] = injectDefaultSchema(schema).fields; + perms[schema.className] = schema.classLevelPermissions; }); // Inject the in-memory classes volatileClasses.forEach(className => { const schema = injectDefaultSchema({ className }); - this.data[className] = schema.fields; - this.perms[className] = schema.classLevelPermissions; + data[className] = schema.fields; + perms[className] = schema.classLevelPermissions; }); + this.data = data; + this.perms = perms; delete this.reloadDataPromise; }, (err) => { + this.data = {}; + this.perms = {}; delete this.reloadDataPromise; throw err; });