Test case to ensure dashboard.parse.com won't break (#1636)

* Test case to ensure dashboard.parse.com won't break

* Adds volatile classes concept for _PushStatus

* Fixes test
This commit is contained in:
Florent Vilmart
2016-04-25 21:33:11 -04:00
parent 957b5927b1
commit 0542f860f4
3 changed files with 39 additions and 3 deletions

View File

@@ -93,6 +93,8 @@ const requiredColumns = Object.freeze({
const systemClasses = Object.freeze(['_User', '_Installation', '_Role', '_Session', '_Product', '_PushStatus']);
const volatileClasses = Object.freeze(['_PushStatus']);
// 10 alpha numberic chars + uppercase
const userIdRegex = /^[a-zA-Z0-9]{10}$/;
// Anything that start with role
@@ -251,6 +253,15 @@ class SchemaController {
this.data[schema.className] = schema.fields;
this.perms[schema.className] = schema.classLevelPermissions;
});
// Inject the in-memory classes
volatileClasses.forEach(className => {
this.data[className] = injectDefaultSchema({
className,
fields: {},
classLevelPermissions: {}
});
});
});
}
@@ -259,7 +270,10 @@ class SchemaController {
.then(allSchemas => allSchemas.map(injectDefaultSchema));
}
getOneSchema(className) {
getOneSchema(className, allowVolatileClasses = false) {
if (allowVolatileClasses && volatileClasses.indexOf(className) > -1) {
return Promise.resolve(this.data[className]);
}
return this._dbAdapter.getOneSchema(className)
.then(injectDefaultSchema);
}