mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-31 18:08:11 +00:00 
			
		
		
		
	
		
			
	
	
		
			88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			88 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | // Test a simple default API with no relations
 | ||
|  | 
 | ||
|  | const { registerAndLogin } = require('../../../test/helpers/auth'); | ||
|  | const { createAuthRequest } = require('../../../test/helpers/request'); | ||
|  | 
 | ||
|  | let rq; | ||
|  | let data = {}; | ||
|  | let internals = { | ||
|  |   user: { | ||
|  |     username: 'User 1', | ||
|  |     email: 'user1@strapi.io', | ||
|  |     password: 'test1234', | ||
|  |   }, | ||
|  |   role: { | ||
|  |     name: 'Test Role', | ||
|  |     description: 'Some random test role', | ||
|  |   }, | ||
|  | }; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Utils for this test files | ||
|  |  */ | ||
|  | const createTestUser = () => | ||
|  |   rq({ | ||
|  |     method: 'POST', | ||
|  |     url: '/auth/local/register', | ||
|  |     body: internals.user, | ||
|  |   }); | ||
|  | 
 | ||
|  | const deleteTestUser = () => | ||
|  |   rq({ | ||
|  |     method: 'DELETE', | ||
|  |     url: `/users/${data.user.id}`, | ||
|  |   }); | ||
|  | 
 | ||
|  | /***************************** | ||
|  |  * TESTS | ||
|  |  *****************************/ | ||
|  | describe('Roles API', () => { | ||
|  |   beforeAll(async () => { | ||
|  |     const token = await registerAndLogin(); | ||
|  |     rq = createAuthRequest(token); | ||
|  | 
 | ||
|  |     const res = await createTestUser(); | ||
|  |     data.user = res.body.user; | ||
|  |   }, 60000); | ||
|  | 
 | ||
|  |   afterAll(() => deleteTestUser()); | ||
|  | 
 | ||
|  |   test('Create Role', async () => { | ||
|  |     const res = await rq({ | ||
|  |       method: 'POST', | ||
|  |       url: '/users-permissions/roles', | ||
|  |       body: { | ||
|  |         ...internals.role, | ||
|  |         permissions: [], | ||
|  |         users: [data.user], | ||
|  |       }, | ||
|  |     }); | ||
|  | 
 | ||
|  |     expect(res.statusCode).toBe(200); | ||
|  |     expect(res.body).toMatchObject({ ok: true }); | ||
|  |   }); | ||
|  | 
 | ||
|  |   test('List Roles', async () => { | ||
|  |     const res = await rq({ | ||
|  |       method: 'GET', | ||
|  |       url: '/users-permissions/roles', | ||
|  |     }); | ||
|  | 
 | ||
|  |     expect(res.statusCode).toBe(200); | ||
|  |     expect(res.body.roles).toEqual( | ||
|  |       expect.arrayContaining([expect.objectContaining(internals.role)]) | ||
|  |     ); | ||
|  | 
 | ||
|  |     data.role = res.body.roles.find(r => r.name === internals.role.name); | ||
|  |   }); | ||
|  | 
 | ||
|  |   test('Delete Role', async () => { | ||
|  |     const res = await rq({ | ||
|  |       method: 'DELETE', | ||
|  |       url: `/users-permissions/roles/${data.role.id}`, | ||
|  |     }); | ||
|  | 
 | ||
|  |     expect(res.statusCode).toBe(200); | ||
|  |   }); | ||
|  | }); |