feat: make role name unique and remove key usage
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
import kebabCase from 'lodash/kebabCase.js';
|
||||
import { renderObject } from '../../../../../helpers/renderer.js';
|
||||
import Role from '../../../../../models/role.js';
|
||||
|
||||
@@ -14,10 +13,8 @@ export default async (request, response) => {
|
||||
|
||||
const roleParams = (request) => {
|
||||
const { name, description, permissions } = request.body;
|
||||
const key = kebabCase(name);
|
||||
|
||||
return {
|
||||
key,
|
||||
name,
|
||||
description,
|
||||
permissions,
|
||||
|
@@ -14,7 +14,7 @@ describe('POST /api/v1/admin/roles', () => {
|
||||
beforeEach(async () => {
|
||||
vi.spyOn(license, 'hasValidLicense').mockResolvedValue(true);
|
||||
|
||||
role = await createRole({ key: 'admin' });
|
||||
role = await createRole({ name: 'Admin' });
|
||||
currentUser = await createUser({ roleId: role.id });
|
||||
|
||||
token = await createAuthTokenByUserId(currentUser.id);
|
||||
@@ -41,7 +41,7 @@ describe('POST /api/v1/admin/roles', () => {
|
||||
|
||||
const createdRole = await Role.query()
|
||||
.withGraphFetched({ permissions: true })
|
||||
.findOne({ key: 'viewer' })
|
||||
.findOne({ name: 'Viewer' })
|
||||
.throwIfNotFound();
|
||||
|
||||
const expectedPayload = await createRoleMock(
|
||||
@@ -61,7 +61,7 @@ describe('POST /api/v1/admin/roles', () => {
|
||||
expect(response.body).toEqual(expectedPayload);
|
||||
});
|
||||
|
||||
it('should return unprocessable entity response for invalid data', async () => {
|
||||
it('should return unprocessable entity response for invalid role data', async () => {
|
||||
const roleData = {
|
||||
description: '',
|
||||
permissions: [],
|
||||
@@ -76,7 +76,6 @@ describe('POST /api/v1/admin/roles', () => {
|
||||
expect(response.body).toStrictEqual({
|
||||
errors: {
|
||||
name: ["must have required property 'name'"],
|
||||
key: ['must NOT have fewer than 1 characters'],
|
||||
},
|
||||
meta: {
|
||||
type: 'ModelValidation',
|
||||
@@ -85,8 +84,10 @@ describe('POST /api/v1/admin/roles', () => {
|
||||
});
|
||||
|
||||
it('should return unprocessable entity response for duplicate role', async () => {
|
||||
await createRole({ name: 'Viewer' });
|
||||
|
||||
const roleData = {
|
||||
name: 'admin',
|
||||
name: 'Viewer',
|
||||
permissions: [],
|
||||
};
|
||||
|
||||
@@ -98,7 +99,7 @@ describe('POST /api/v1/admin/roles', () => {
|
||||
|
||||
expect(response.body).toStrictEqual({
|
||||
errors: {
|
||||
key: ["'key' must be unique."],
|
||||
name: ["'name' must be unique."],
|
||||
},
|
||||
meta: {
|
||||
type: 'UniqueViolationError',
|
||||
|
@@ -13,7 +13,7 @@ describe('GET /api/v1/admin/roles/:roleId', () => {
|
||||
let role, currentUser, token, permissionOne, permissionTwo;
|
||||
|
||||
beforeEach(async () => {
|
||||
role = await createRole({ key: 'admin' });
|
||||
role = await createRole({ name: 'Admin' });
|
||||
permissionOne = await createPermission({ roleId: role.id });
|
||||
permissionTwo = await createPermission({ roleId: role.id });
|
||||
currentUser = await createUser({ roleId: role.id });
|
||||
|
@@ -11,8 +11,8 @@ describe('GET /api/v1/admin/roles', () => {
|
||||
let roleOne, roleTwo, currentUser, token;
|
||||
|
||||
beforeEach(async () => {
|
||||
roleOne = await createRole({ key: 'admin' });
|
||||
roleTwo = await createRole({ key: 'user' });
|
||||
roleOne = await createRole({ name: 'Admin' });
|
||||
roleTwo = await createRole({ name: 'User' });
|
||||
currentUser = await createUser({ roleId: roleOne.id });
|
||||
|
||||
token = await createAuthTokenByUserId(currentUser.id);
|
||||
|
Reference in New Issue
Block a user