Как проверить функцию, которая возвращает обещания? - PullRequest
0 голосов
/ 14 сентября 2018

пытаясь написать модульный тест, используя jest, он никогда не попадет в тестовый случай, где я перезапустил обещание, чтобы я мог получить ответ после then.

если есть лучший способ написания тестовых случаев для обещаний, я был бы признателен за этот ввод.

executer.ts

export class Executor {
    private passedParam: ILogParams = {} as ILogParams;
    constructor(public identity: Identity) {
        this._ajv = new Ajv();
    }
    public execute(moduleName: string): (param1, param2) => any {
        const self = this;
        // getting rid of the tslint issue with Function
        return function(params: any, responseCallback: (param: any , param2: any) => any) {
            let _mod;
            let _httpRequest;
            let _params;
            Promise.resolve(getApiModule(self.identity, moduleName))
                .then((mod: ModuleBase<any, any>) => {
                    _mod = mod;
                    mod.ExecStage = ExecStage.Init;
                    return mod.init(getHttpModule(self.identity), params);
                })
                .then((httpRequest: HttpRequestBase) => {
                    _httpRequest = httpRequest;
                    if (_mod.Response().Summary.Header) {
                        throw _mod.Response().Summary;
                    }
                    return httpRequest;
                })
        };
    }
}

executer.spec.ts

import {ModuleExecutor} from "../../src/ts/common/executor";


    it('should transition with the correct event', (done) => {
                const executer = new ModuleExecutor(Identity.node);
                const executerSpy = executer.execute("Payments/accountBalance/GetAccountBalance");
                new Promise((resolve, reject) => {
                    resolve(true);
                }).then(((mod: ModuleBase<any, any>) => {
                    done();
                }))
                    .catch((error) => {
                        done();
                    });
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...