From 4054c247ec85afee17b096dc521c124a8839c072 Mon Sep 17 00:00:00 2001 From: jim1_lin Date: Wed, 2 Mar 2016 11:13:24 +0800 Subject: [PATCH] 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. --- spec/ParseRole.spec.js | 21 ++++++++++++++++----- src/Routers/ClassesRouter.js | 3 +++ src/Routers/RolesRouter.js | 3 --- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/spec/ParseRole.spec.js b/spec/ParseRole.spec.js index 83a5a59e..ed483b22 100644 --- a/spec/ParseRole.spec.js +++ b/spec/ParseRole.spec.js @@ -59,17 +59,17 @@ describe('Parse Role testing', () => { }); }); - + it("should recursively load roles", (done) => { - + var rolesNames = ["FooRole", "BarRole", "BazRole"]; - + var createRole = function(name, parent, user) { var role = new Parse.Object("_Role") role.set("name", name); if (user) { var users = role.relation('users'); - users.add(user); + users.add(user); } if (parent) { role.relation('roles').add(parent); @@ -78,7 +78,7 @@ describe('Parse Role testing', () => { } var roleIds = {}; createTestUser().then( (user) => { - + return createRole(rolesNames[0], null, null).then( (aRole) => { roleIds[aRole.get("name")] = aRole.id; 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(); + }); + }); + }); diff --git a/src/Routers/ClassesRouter.js b/src/Routers/ClassesRouter.js index 9742f5f9..72e497e5 100644 --- a/src/Routers/ClassesRouter.js +++ b/src/Routers/ClassesRouter.js @@ -81,6 +81,9 @@ export class ClassesRouter extends PromiseRouter { } 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); } diff --git a/src/Routers/RolesRouter.js b/src/Routers/RolesRouter.js index f0cb71c6..c9b4f999 100644 --- a/src/Routers/RolesRouter.js +++ b/src/Routers/RolesRouter.js @@ -16,9 +16,6 @@ export class RolesRouter extends ClassesRouter { handleCreate(req) { req.params.className = '_Role'; - if(req.body && !req.body.name){ - throw new Parse.Error(135, 'Role names must be specified.'); - } return super.handleCreate(req); }