diff --git a/spec/ParseRole.spec.js b/spec/ParseRole.spec.js index 83a5a59e30..02166ddded 100644 --- a/spec/ParseRole.spec.js +++ b/spec/ParseRole.spec.js @@ -59,17 +59,16 @@ 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); + var role = new Parse.Role(name, new Parse.ACL()); if (user) { var users = role.relation('users'); - users.add(user); + users.add(user); } if (parent) { role.relation('roles').add(parent); @@ -78,7 +77,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 +101,23 @@ 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(111); + role.set('name','testRole'); + role.save(null,{useMasterKey:true}) + .then((r2)=>{ + fail("_Role object should not save without ACL."); + }, (error2) =>{ + expect(error2.code).toEqual(111); + done(); + }); + }); + }); + }); diff --git a/src/Schema.js b/src/Schema.js index 5c8a94d183..b16dfd188e 100644 --- a/src/Schema.js +++ b/src/Schema.js @@ -73,7 +73,8 @@ var defaultColumns = { var requiredColumns = { - _Product: ["productIdentifier", "icon", "order", "title", "subtitle"] + _Product: ["productIdentifier", "icon", "order", "title", "subtitle"], + _Role: ["name", "ACL"] } // Valid classes must: