Я хочу сделать модульный тест с асинхронной функцией кода. и вот мой код на user.test.js
'use strict'
const UserDomain = require("../../../../../../bin/modules/users/repositories/commands/domain")
const UserHandler = require("../../../../../../bin/modules/users/repositories/commands/command_handler")
const expect = require('chai').expect;
const assert = require('chai').assert;
const sinon = require('sinon');
describe('User domain', () => {
describe('".login(data)"', () => {
let user;
beforeEach( () => {
user = {
clientId : "adithyavisnu",
clientSecret : "secretOfmine@19"
}
});
it("should return error when username/password is empty", (done)=> {
done();
// let
})
it("should return object", async () => {
const domainStub = sinon.stub(UserDomain.prototype, 'login');
const result = await UserHandler.login(user);
sinon.assert.calledOnce(domainStub);
domainStub.restore();
})
});
});
Если нормальный код (а не код модульного теста выше), const result = await UserHandler.login(user);
будет иметь объектный ответ, но когда я делаю в user.test.js, он не получает ответ. result
не определено.
вот код user_handler
'use strict';
const User = require('./domain');
const login = async (data) => {
const postData = async () => {
const user = new User();
const result = await user.login(data);
return result;
}
const response = await postData();
return response;
}
Что-то я не так сделал в коде или какой-то код отсутствует?
Извините, если вы думаете, что есть неясная информация
Спасибо за ответы