Правильно, он должен быть определен на той же странице, что и код шаблона, поскольку он в глобальных шаблонах с цепочкой не работает.
#from Cheetah import NameMapper
исправляет проблему.
Вы указываете на метод, когда объявляете:
const spy = spyOn(myService, 'getAllRecords').and.returnValue(Promise.resolve({ id: 1 }));
Сам метод никогда не будет введен, потому что ваш шпион возвращает другое значение от его имени.
Я бы предложил, чтобы вместо установки шпиона на myService.getAllRecords()
вы вместо этого установили шпиона на httpService.makeHttpGetRequest()
и вернули холодную наблюдаемую, которая сразу же завершается, с различными значениями для проверки как счастливого пути, так и случая ошибки. [ 115]