| 
									
										
										
										
											2020-10-27 11:27:17 +01:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-14 12:41:17 +02:00
										 |  |  | // Test a simple default API with no relations
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-05 10:32:20 +02:00
										 |  |  | const { createStrapiInstance } = require('api-tests/strapi'); | 
					
						
							|  |  |  | const { createAuthRequest } = require('api-tests/request'); | 
					
						
							| 
									
										
										
										
											2019-05-14 12:41:17 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 15:38:41 +01:00
										 |  |  | let strapi; | 
					
						
							| 
									
										
										
										
											2019-05-14 12:41:17 +02:00
										 |  |  | let rq; | 
					
						
							| 
									
										
										
										
											2022-08-08 15:50:34 +02:00
										 |  |  | const data = {}; | 
					
						
							|  |  |  | const internals = { | 
					
						
							| 
									
										
										
										
											2019-05-14 12:41:17 +02:00
										 |  |  |   role: { | 
					
						
							|  |  |  |     name: 'Test Role', | 
					
						
							|  |  |  |     description: 'Some random test role', | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-08 15:50:34 +02:00
										 |  |  | /** *************************** | 
					
						
							| 
									
										
										
										
											2019-05-14 12:41:17 +02:00
										 |  |  |  * TESTS | 
					
						
							| 
									
										
										
										
											2022-08-08 15:50:34 +02:00
										 |  |  |  **************************** */ | 
					
						
							| 
									
										
										
										
											2019-05-14 12:41:17 +02:00
										 |  |  | describe('Roles API', () => { | 
					
						
							|  |  |  |   beforeAll(async () => { | 
					
						
							| 
									
										
										
										
											2020-11-30 20:20:36 +01:00
										 |  |  |     strapi = await createStrapiInstance(); | 
					
						
							| 
									
										
										
										
											2020-11-17 15:38:41 +01:00
										 |  |  |     rq = await createAuthRequest({ strapi }); | 
					
						
							| 
									
										
										
										
											2021-03-26 20:15:38 +01:00
										 |  |  |   }); | 
					
						
							| 
									
										
										
										
											2019-05-14 12:41:17 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-17 15:38:41 +01:00
										 |  |  |   afterAll(async () => { | 
					
						
							|  |  |  |     await strapi.destroy(); | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2019-05-14 12:41:17 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   test('Create Role', async () => { | 
					
						
							|  |  |  |     const res = await rq({ | 
					
						
							|  |  |  |       method: 'POST', | 
					
						
							|  |  |  |       url: '/users-permissions/roles', | 
					
						
							|  |  |  |       body: { | 
					
						
							|  |  |  |         ...internals.role, | 
					
						
							|  |  |  |         permissions: [], | 
					
						
							|  |  |  |       }, | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     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)]) | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-08 23:33:39 +02:00
										 |  |  |     data.role = res.body.roles.find((r) => r.name === internals.role.name); | 
					
						
							| 
									
										
										
										
											2019-05-14 12:41:17 +02:00
										 |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   test('Delete Role', async () => { | 
					
						
							|  |  |  |     const res = await rq({ | 
					
						
							|  |  |  |       method: 'DELETE', | 
					
						
							|  |  |  |       url: `/users-permissions/roles/${data.role.id}`, | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect(res.statusCode).toBe(200); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); |