add base for e2e tests

Signed-off-by: Pierre Noël <petersg83@gmail.com>
This commit is contained in:
Pierre Noël 2020-05-19 14:51:08 +02:00 committed by Alexandre Bodin
parent eec2937d9c
commit 81640de2e7
4 changed files with 78 additions and 25 deletions

View File

@ -3,7 +3,7 @@
module.exports = {
async findOne(ctx) {
const { id } = ctx.params;
const role = await strapi.admin.services.role.fetch({ id });
const role = await strapi.admin.services.role.findOne({ id });
if (!role) {
return ctx.notFound('role.notFound');

View File

@ -16,12 +16,12 @@ describe('Role', () => {
const createdRole = await roleService.create(input);
expect(dbCreate).toHaveBeenCalled();
expect(dbCreate).toHaveBeenCalledWith(input);
expect(createdRole).toStrictEqual(input);
});
});
describe('fetch', () => {
test('Fetches a role', async () => {
describe('find one', () => {
test('Finds a role', async () => {
const role = {
id: 1,
name: 'super_admin',
@ -33,10 +33,10 @@ describe('Role', () => {
query: () => ({ findOne: dbFindOne }),
};
const fetchedRole = await roleService.fetch({ id: role.id });
const foundRole = await roleService.findOne({ id: role.id });
expect(dbFindOne).toHaveBeenCalled();
expect(fetchedRole).toStrictEqual(role);
expect(dbFindOne).toHaveBeenCalledWith({ id: role.id });
expect(foundRole).toStrictEqual(role);
});
});
});

View File

@ -1,19 +1,22 @@
module.exports = {
/**
* Create and save a role in database
* @param attributes A partial role object
* @returns {Promise<role>}
*/
create(attributes) {
return strapi.query('role', 'admin').create(attributes);
},
/**
* fetch a role in database
* @param params query params to find the role
* @returns {Promise<user>}
*/
fetch(params) {
return strapi.query('role', 'admin').findOne(params);
},
/**
* Create and save a role in database
* @param attributes A partial role object
* @returns {Promise<role>}
*/
const create = attributes => {
return strapi.query('role', 'admin').create(attributes);
};
/**
* Find a role in database
* @param params query params to find the role
* @returns {Promise<role>}
*/
const findOne = params => {
return strapi.query('role', 'admin').findOne(params);
};
module.exports = {
create,
findOne,
};

View File

@ -0,0 +1,50 @@
// Helpers.
const { registerAndLogin } = require('../../../test/helpers/auth');
const { createAuthRequest } = require('../../../test/helpers/request');
let rq;
const data = {
roles: [],
};
describe('Role CRUD End to End', () => {
beforeAll(async () => {
const token = await registerAndLogin();
rq = createAuthRequest(token);
}, 60000);
describe('Create a new role', () => {
test.skip('Can create a role successfully', async () => {
const role = {
name: 'new role',
description: 'Description of new role',
};
const res = await rq({
url: '/admin/roles',
method: 'POST',
body: role,
});
data.roles.push(res);
expect(res.statusCode).toBe(201);
expect(res.body).toMatchObject({
name: role.name,
description: role.description,
});
});
});
describe('Find a role', () => {
test.skip('Can find a role successfully', async () => {
const res = await rq({
url: `/admin/roles/${data.roles[0].id}`,
method: 'GET',
});
expect(res.statusCode).toBe(200);
expect(res.body).toMatchObject(data[0]);
});
});
});