From fe1039cfbc6ee4d00b9047d18cf288eb40fc83b8 Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Mon, 4 Mar 2024 16:07:18 +0100 Subject: [PATCH] test: Add permissions to get current user tests --- .../api/v1/users/get-current-user.test.js | 26 ++++++++++++++++--- .../rest/api/v1/users/get-current-user.js | 12 +++++++-- 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/packages/backend/src/controllers/api/v1/users/get-current-user.test.js b/packages/backend/src/controllers/api/v1/users/get-current-user.test.js index 922dd409..7ed4f09c 100644 --- a/packages/backend/src/controllers/api/v1/users/get-current-user.test.js +++ b/packages/backend/src/controllers/api/v1/users/get-current-user.test.js @@ -2,15 +2,29 @@ import { describe, it, expect, beforeEach } from 'vitest'; import request from 'supertest'; import app from '../../../../app.js'; import createAuthTokenByUserId from '../../../../helpers/create-auth-token-by-user-id'; +import { createPermission } from '../../../../../test/factories/permission'; +import { createRole } from '../../../../../test/factories/role'; import { createUser } from '../../../../../test/factories/user'; import getCurrentUserMock from '../../../../../test/mocks/rest/api/v1/users/get-current-user'; describe('GET /api/v1/users/me', () => { - let role, currentUser, token; + let role, permissionOne, permissionTwo, currentUser, token; beforeEach(async () => { - currentUser = await createUser(); - role = await currentUser.$relatedQuery('role'); + role = await createRole(); + + permissionOne = await createPermission({ + roleId: role.id, + }); + + permissionTwo = await createPermission({ + roleId: role.id, + }); + + currentUser = await createUser({ + roleId: role.id, + }); + token = createAuthTokenByUserId(currentUser.id); }); @@ -20,7 +34,11 @@ describe('GET /api/v1/users/me', () => { .set('Authorization', token) .expect(200); - const expectedPayload = getCurrentUserMock(currentUser, role); + const expectedPayload = getCurrentUserMock(currentUser, role, [ + permissionOne, + permissionTwo, + ]); + expect(response.body).toEqual(expectedPayload); }); }); diff --git a/packages/backend/test/mocks/rest/api/v1/users/get-current-user.js b/packages/backend/test/mocks/rest/api/v1/users/get-current-user.js index f498e0d1..cfbd0f54 100644 --- a/packages/backend/test/mocks/rest/api/v1/users/get-current-user.js +++ b/packages/backend/test/mocks/rest/api/v1/users/get-current-user.js @@ -1,11 +1,19 @@ -const getCurrentUserMock = (currentUser, role) => { +const getCurrentUserMock = (currentUser, role, permissions) => { return { data: { createdAt: currentUser.createdAt.getTime(), email: currentUser.email, fullName: currentUser.fullName, id: currentUser.id, - permissions: [], + permissions: permissions.map((permission) => ({ + id: permission.id, + roleId: permission.roleId, + action: permission.action, + subject: permission.subject, + conditions: permission.conditions, + createdAt: permission.createdAt.getTime(), + updatedAt: permission.updatedAt.getTime(), + })), role: { createdAt: role.createdAt.getTime(), description: null,