Add test, JavascriptSDK 1.7.1 rest format not as expected

JavascriptSDK 1.7.1 use serverUrl/classes/_Role directly.
So move validation from RolesRouter to ClassesRouter.
This commit is contained in:
jim1_lin
2016-03-02 11:13:24 +08:00
parent 3889223b10
commit 4054c247ec
3 changed files with 19 additions and 8 deletions

View File

@@ -59,17 +59,17 @@ describe('Parse Role testing', () => {
}); });
}); });
it("should recursively load roles", (done) => { it("should recursively load roles", (done) => {
var rolesNames = ["FooRole", "BarRole", "BazRole"]; var rolesNames = ["FooRole", "BarRole", "BazRole"];
var createRole = function(name, parent, user) { var createRole = function(name, parent, user) {
var role = new Parse.Object("_Role") var role = new Parse.Object("_Role")
role.set("name", name); role.set("name", name);
if (user) { if (user) {
var users = role.relation('users'); var users = role.relation('users');
users.add(user); users.add(user);
} }
if (parent) { if (parent) {
role.relation('roles').add(parent); role.relation('roles').add(parent);
@@ -78,7 +78,7 @@ describe('Parse Role testing', () => {
} }
var roleIds = {}; var roleIds = {};
createTestUser().then( (user) => { createTestUser().then( (user) => {
return createRole(rolesNames[0], null, null).then( (aRole) => { return createRole(rolesNames[0], null, null).then( (aRole) => {
roleIds[aRole.get("name")] = aRole.id; roleIds[aRole.get("name")] = aRole.id;
return createRole(rolesNames[1], aRole, null); return createRole(rolesNames[1], aRole, null);
@@ -102,5 +102,16 @@ describe('Parse Role testing', () => {
}); });
}); });
it("_Role object should not save without name.", (done) => {
var role = new Parse.Role();
role.save(null,{useMasterKey:true})
.then((r) => {
fail("_Role object should not save without name.");
}, (error) => {
expect(error.code).toEqual(135);
done();
});
});
}); });

View File

@@ -81,6 +81,9 @@ export class ClassesRouter extends PromiseRouter {
} }
handleCreate(req) { handleCreate(req) {
if(req.params.className === '_Role' && req.body && !req.body.name){
throw new Parse.Error(135, 'Role names must be specified.');
}
return rest.create(req.config, req.auth, req.params.className, req.body); return rest.create(req.config, req.auth, req.params.className, req.body);
} }

View File

@@ -16,9 +16,6 @@ export class RolesRouter extends ClassesRouter {
handleCreate(req) { handleCreate(req) {
req.params.className = '_Role'; req.params.className = '_Role';
if(req.body && !req.body.name){
throw new Parse.Error(135, 'Role names must be specified.');
}
return super.handleCreate(req); return super.handleCreate(req);
} }