У меня есть метод и функция с promise.then.
Я не уверен, как проверить эту закомментированную часть. Когда я запускаю тест с закомментированными частями, выдается TypeError: Невозможно прочитать свойство 'then' из неопределенного . Как это исправить?
введите код сценария:
showHistory(): void {
let title = "";
let action = null;
let id = -1;
switch (this.selectedIndex) {
case 0:
title = this.$translate.instant("dx.dxHistory");
action = this.history.getDefHistory;
break;
case 1:
title = this.$translate.instant("dx.stHistory");
action = this.history.getStHistory;
break;
}
// action({dxId: id}).$promise.then((result) => {
// const options = {
// fields: [
// {key: "changedBy", title: this.$translate.instant("dx.changedBy")}
// ]
// };
//
// this.$mdDialog.show({
// clickOutsideToClose: true
// });
// });
}
Тестовый код:
describe("show history", () => {
fit("should set .......", () => {
dxTabs.selectedIndex = 0;
dxTabs.dx = createdx();
const action = () => {
return {
$promise: $q.when([])
};
};
spyOn($translate, "instant").and.callFake((str) => {
expect(str).toEqual("dx.dxHistory");
return "test";
});
spyOn(history, "getDefHistory").and.returnValue(action);
dxTabs.showHistory();
expect($translate.instant).toHaveBeenCalled();
});
});