in my UserService:
createUser: async (data) => {
const user = new UserDBEntryMapper(data);
const createdUser = await UserModel.create(user).catch(error => {
this.handleError(error);
});
return createdUser ? new UserBOMapper(createdUser) : null;
}
in my user.test.js
it.only('Create New User', async () => {
const stub = sinon.stub(UserModel, "create").returns(user);
const created = await UserService.createUser(user);
expect(stub.calledOnce).to.be.true;
});
throwing the error as:
Create New User:
TypeError: UserModel.create(...).catch is not a function
If I remove catch
block in UserService
the test passes, but we need a catch block there. How do I handle this?
Note: UserModel.create()
is sequelize
default function
Promise needs to be returned in a mock. Something like this
const stub = sinon.stub(UserModel, "create").returns(Promise.resolve(user));