Adds index on _Role name property (#3586)

* Adds index on _Role name property

In order to avoid having different _Role objects with the same name, adding an index on the name property of _Role is necessary.

Fixes #3579

* Uses throw instead of Promise.reject when enforcing unique indexes

* Fixes wrong sorting of results in schemas tests
This commit is contained in:
Natan Rolnik
2017-03-04 22:42:19 +02:00
committed by Arthur Cinader
parent 0181fb51b3
commit 9bfa0c60c4
4 changed files with 53 additions and 7 deletions

View File

@@ -102,6 +102,20 @@ const userSchema = {
"classLevelPermissions": defaultClassLevelPermissions,
}
const roleSchema = {
"className": "_Role",
"fields": {
"objectId": {"type": "String"},
"createdAt": {"type": "Date"},
"updatedAt": {"type": "Date"},
"ACL": {"type": "ACL"},
"name": {"type":"String"},
"users": {"type":"Relation", "targetClass":"_User"},
"roles": {"type":"Relation", "targetClass":"_Role"}
},
"classLevelPermissions": defaultClassLevelPermissions,
}
var noAuthHeaders = {
'X-Parse-Application-Id': 'test',
};
@@ -166,7 +180,10 @@ describe('schemas', () => {
json: true,
headers: masterKeyHeaders,
}, (error, response, body) => {
expect(dd(body.results, [userSchema])).toEqual();
var expected = {
results: [userSchema,roleSchema]
};
expect(dd(body.results.sort((s1, s2) => s1.className > s2.className), expected.results.sort((s1, s2) => s1.className > s2.className))).toEqual(undefined);
done();
});
});
@@ -186,9 +203,9 @@ describe('schemas', () => {
headers: masterKeyHeaders,
}, (error, response, body) => {
var expected = {
results: [userSchema,plainOldDataSchema,pointersAndRelationsSchema]
results: [userSchema,roleSchema,plainOldDataSchema,pointersAndRelationsSchema]
};
expect(dd(body, expected)).toEqual(undefined);
expect(dd(body.results.sort((s1, s2) => s1.className > s2.className), expected.results.sort((s1, s2) => s1.className > s2.className))).toEqual(undefined);
done();
})
});