Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import createNewUserUseCase from '../create-new-user.usecase';
- import User from "../../../models/User";
- import "regenerator-runtime/runtime.js";
- jest.mock("../../../models/User");
- describe("Create new user usecase test", () => {
- const resMock = {
- status: jest.fn(() => resMock),
- send: jest.fn(() => resMock)
- };
- const reqMock = {
- body: {
- name: "name",
- email: "email",
- role: "role",
- password: "123456",
- password_confirmation: "123456"
- }
- }
- it(`It should:
- - Call findOne method to verify if a user user with the same email already exists
- - Call the constructor of the User model with the right parameters
- - Call the User prototype save method `, async () => {
- await createNewUserUseCase(reqMock, resMock);
- expect(User.findOne).toHaveBeenCalledTimes(1);
- expect(User).toHaveBeenCalledTimes(1);
- expect(User.mock.calls[0][0].name).toBe('name');
- expect(User.mock.calls[0][0].email).toBe('email');
- expect(User.mock.calls[0][0].role).toBe('role');
- expect(User.mock.calls[0][0].created_at).toBeInstanceOf(Date);
- expect(User.prototype.save).toHaveBeenCalledTimes(1);
- expect(resMock.status).toHaveBeenCalledTimes(1);
- expect(resMock.status.mock.calls[0][0]).toBe(201);
- expect(resMock.send).toHaveBeenCalledTimes(1);
- });
- it(`It should:
- - Fail to save the user
- - Response obj send error responses`, async () => {
- User.prototype.save.mockImplementationOnce(() => Promise.reject('Fail to save the user'));
- await createNewUserUseCase(reqMock, resMock);
- expect(resMock.status).toHaveBeenCalledTimes(2);
- expect(resMock.status.mock.calls[1][0]).toBe(500);
- expect(resMock.send).toHaveBeenCalledTimes(2);
- expect(resMock.send.mock.calls[1][0]).toStrictEqual({error: "Houve um erro interno."});
- })
- });
Advertisement
Advertisement
Advertisement
RAW Paste Data
Copied
Advertisement