Я новичок в javascript испытательной рамке. У меня проблема с издевательством над Promise. Мой код выглядит так:
this.convertEvent(
() => {
addUser(this.getProp("criterion")).then((reply) => {
if (reply[0].m_status === "S") {
this.getUser();
}
});
});
В моем модульном тесте, когда я выполняю вызов convertEvent, мне нужно выполнить два метода addUser и getUser (это выполняется, когда ответ приходит от addUser). Я использую spyOn () примерно так:
let thenFunc;
beforeEach(() => {
promiseSpyObj.then.and.callFake((func) => {
thenFunc = func;
return [{ m_status : "S" }];
});
let arrayReply = [{ m_status : "S" }];
spyOn(className, "addUser").and.returnValue(promiseSpyObj);
spyOn(className, "getUser").and.returnValue(promiseSpyObj);
И я ожидаю: expect(className.addUser).toHaveBeenCalled();
expect(className.getUser).toHaveBeenCalled();
Но я замечаю только то, что вызывается только addUser (). Я ожидаю, что обещание addUser должно разрешиться и должен быть вызван getUser.