Я знаю, что этот вопрос довольно часто, и я прочитал все связанные с ним вопросы, но, похоже, я все еще не могу понять, как применить их к моему делу.
Это моя ошибка:
Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
Я пытаюсь заглушить метод со следующей подписью:
public async signIn(model: SignInInputModel): Promise<SignInResultModel> {...}
И я не хочу заглушать модель ответа перед началом модульного теста.Вот как я пытаюсь сделать это безуспешно:
describe("incorrect behaviour", () => {
before((done) => {
sinon.stub(Auth0Service.prototype, "signIn").resolves(() => {
const result = new SignInResultModel();
result.success = false;
result.errorMessage = "foo";
return result;
});
//this not working as well
// sinon.stub(Auth0Service.prototype, "signIn").returns(() => {
// const result = new SignInResultModel();
// result.success = false;
// result.errorMessage = "foo";
// Promise.resolve(result);
// });
});
it("sinon test", async (done) => {
request(app)
.post("/auth/signIn")
.send()
.expect(200)
.end((err, res) => {
...
done();
});
});
});
Что я делаю не так?