Add missing tests for user & token services

Signed-off-by: Convly <jean-sebastien.herbaux@epitech.eu>
This commit is contained in:
Convly 2020-05-14 12:30:04 +02:00 committed by Alexandre Bodin
parent 999e93db2b
commit 3029026014
2 changed files with 85 additions and 3 deletions

View File

@ -1,6 +1,6 @@
'use strict';
const { createJwtToken, getTokenOptions, decodeJwtToken } = require('../token');
const { createJwtToken, getTokenOptions, decodeJwtToken, createToken } = require('../token');
const delay = time => new Promise(resolve => setTimeout(resolve, time));
@ -201,4 +201,14 @@ describe('Token', () => {
expect(isValid).toBe(true);
});
});
describe('createToken', () => {
test('Create a random token of length 128', () => {
const token = createToken();
expect(token).toBeDefined();
expect(typeof token === 'string').toBe(true);
expect(token.length).toBe(128);
});
});
});

View File

@ -1,11 +1,12 @@
'use strict';
const { sanitizeUser } = require('../user');
const _ = require('lodash');
const userService = require('../user');
describe('User', () => {
describe('sanitizeUser', () => {
test('Removes password and resetPasswordToken', () => {
const res = sanitizeUser({
const res = userService.sanitizeUser({
id: 1,
firstname: 'Test',
otherField: 'Hello',
@ -20,4 +21,75 @@ describe('User', () => {
});
});
});
describe('create', () => {
test('Creates a user by merging given and default attributes', async () => {
const create = jest.fn(user => Promise.resolve(user));
global.strapi = {
query() {
return { create };
},
};
const input = { firstname: 'John', lastname: 'Doe', email: 'johndoe@email.com' };
const expected = { ...input, isActive: false, roles: [] };
const result = await userService.create(input);
expect(result).toStrictEqual(expected);
});
test('Creates a user by using given attributes', async () => {
const createFn = jest.fn(user => Promise.resolve(user));
global.strapi = {
query() {
return { create: createFn };
},
};
const input = {
firstname: 'John',
lastname: 'Doe',
email: 'johndoe@email.com',
roles: [2],
isActive: true,
};
const expected = _.clone(input);
const result = await userService.create(input);
expect(result).toStrictEqual(expected);
});
});
describe('exists', () => {
test('Return true if the user already exists', async () => {
const count = jest.fn(() => Promise.resolve(1));
global.strapi = {
query: () => {
return { count };
},
};
const result = await userService.exists();
expect(result).toBeTruthy();
});
test('Return false if the user does not exists', async () => {
const count = jest.fn(() => Promise.resolve(0));
global.strapi = {
query: () => {
return { count };
},
};
const result = await userService.exists();
expect(result).toBeFalsy();
});
});
});