1
0
mirror of https://github.com/sasjs/server.git synced 2026-01-09 15:30:05 +00:00

chore: remvoe code redundancy and add specs for get permissions api endpoint

This commit is contained in:
2022-05-10 07:05:59 +05:00
parent 98b8a75148
commit 7be77cc38a

View File

@@ -53,6 +53,7 @@ describe('permission', () => {
let con: Mongoose let con: Mongoose
let mongoServer: MongoMemoryServer let mongoServer: MongoMemoryServer
let adminAccessToken: string let adminAccessToken: string
let dbUser: UserDetailsResponse | undefined
beforeAll(async () => { beforeAll(async () => {
app = await appPromise app = await appPromise
@@ -61,6 +62,7 @@ describe('permission', () => {
con = await mongoose.connect(mongoServer.getUri()) con = await mongoose.connect(mongoServer.getUri())
adminAccessToken = await generateSaveTokenAndCreateUser() adminAccessToken = await generateSaveTokenAndCreateUser()
dbUser = await userController.createUser(user)
}) })
afterAll(async () => { afterAll(async () => {
@@ -75,11 +77,10 @@ describe('permission', () => {
}) })
it('should respond with new permission when principalType is user', async () => { it('should respond with new permission when principalType is user', async () => {
const dbUser = await userController.createUser(user)
const res = await request(app) const res = await request(app)
.post('/SASjsApi/permission') .post('/SASjsApi/permission')
.auth(adminAccessToken, { type: 'bearer' }) .auth(adminAccessToken, { type: 'bearer' })
.send({ ...permission, principalId: dbUser.id }) .send({ ...permission, principalId: dbUser?.id })
.expect(200) .expect(200)
expect(res.body.permissionId).toBeTruthy() expect(res.body.permissionId).toBeTruthy()
@@ -271,16 +272,11 @@ describe('permission', () => {
}) })
describe('update', () => { describe('update', () => {
let dbUser: UserDetailsResponse | undefined
let dbPermission: PermissionDetailsResponse | undefined let dbPermission: PermissionDetailsResponse | undefined
beforeAll(async () => { beforeAll(async () => {
dbUser = await userController.createUser({
...user,
username: 'updated username'
})
dbPermission = await permissionController.createPermission({ dbPermission = await permissionController.createPermission({
...permission, ...permission,
principalId: dbUser.id principalId: dbUser?.id
}) })
}) })
@@ -351,14 +347,9 @@ describe('permission', () => {
describe('delete', () => { describe('delete', () => {
it('should delete permission', async () => { it('should delete permission', async () => {
const dbUser = await userController.createUser({
...user,
username: 'deleted username'
})
const dbPermission = await permissionController.createPermission({ const dbPermission = await permissionController.createPermission({
...permission, ...permission,
principalId: dbUser.id principalId: dbUser?.id
}) })
const res = await request(app) const res = await request(app)
.delete(`/SASjsApi/permission/${dbPermission?.permissionId}`) .delete(`/SASjsApi/permission/${dbPermission?.permissionId}`)
@@ -379,6 +370,45 @@ describe('permission', () => {
expect(res.text).toEqual('Error: Permission is not found.') expect(res.text).toEqual('Error: Permission is not found.')
}) })
}) })
describe('get', () => {
beforeAll(async () => {
await permissionController.createPermission({
...permission,
uri: '/test-1',
principalId: dbUser?.id
})
await permissionController.createPermission({
...permission,
uri: '/test-2',
principalId: dbUser?.id
})
})
it('should give a list of all permissions when user is admin', async () => {
const res = await request(app)
.get('/SASjsApi/permission/')
.auth(adminAccessToken, { type: 'bearer' })
.send()
.expect(200)
expect(res.body).toHaveLength(2)
})
it('should give a list of all permissions when user is not admin', async () => {
const accessToken = await generateSaveTokenAndCreateUser({
...user,
username: 'get' + user.username
})
const res = await request(app)
.get('/SASjsApi/permission/')
.auth(accessToken, { type: 'bearer' })
.send()
.expect(200)
expect(res.body).toHaveLength(2)
})
})
}) })
const generateSaveTokenAndCreateUser = async ( const generateSaveTokenAndCreateUser = async (