Как протестировать вызов приватных методов внутри другого метода?

есть класс View с приватными методами initRangeSliderMargins и addListenersToThumbs которые должны вызываться в методе createRangeSlider

public createRangeSlider(settings: ISettings): View {
  // code
  this.initRangeSliderMargins(this.settings, this.slider);
  this.updateRangeSliderValues(this.settings);
  this.addListenersToThumbs();
}

тест

test('methods should be called', () => {
  const view = new View('range-slider', settings);
  const initRangeSliderMarginsSpy = jest.spyOn(view, 'initRangeSliderMargins');
  const updateRangeSliderValuesSpy = jest.spyOn(view, 'updateRangeSliderValues');
  const addListenersToThumbsSpy = jest.spyOn(view, 'addListenersToThumbs');
  view.createRangeSlider(settings);

  expect(initRangeSliderMarginsSpy).toBeCalled();
  expect(updateRangeSliderValuesSpy).toBeCalled();
  expect(addListenersToThumbsSpy).toBeCalled();
});

тест проходит, но в jest.spyOn подчеркивает 'initRangeSliderMargins' с ошибкой

No overload matches this call.
  Overload 1 of 4, '(object: View, method: FunctionPropertyNames<Required<View>>): SpyInstance<number | void | View, [settings: ISettings] | ... 4 more ... | [data?: ...]>', gave the following error.
    Argument of type '"initRangeSliderMargins"' is not assignable to parameter of type 'FunctionPropertyNames<Required<View>>'.
  Overload 2 of 4, '(object: View, method: never): SpyInstance<never, never>', gave the following error.
    Argument of type 'string' is not assignable to parameter of type 'never'.ts(2769)

и на 'addListenersToThumbs'

No overload matches this call.
  Overload 1 of 4, '(object: View, method: FunctionPropertyNames<Required<View>>): SpyInstance<number | void | View, [settings: ISettings] | ... 4 more ... | [data?: ...]>', gave the following error.
    Argument of type '"addListenersToThumbs"' is not assignable to parameter of type 'FunctionPropertyNames<Required<View>>'.
  Overload 2 of 4, '(object: View, method: never): SpyInstance<never, never>', gave the following error.
    Argument of type 'string' is not assignable to parameter of type 'never'.ts(2769)

Ответы (0 шт):