Как протестировать метод который ищет элемент на странице с помощью document.querySelector?

метод createSlider

export default class Slider {
  element: HTMLElement;

  constructor(id: string) {
    this.element = this.createSlider(id);
  }

  private createSlider(id: string): HTMLElement {
    const slider = document.querySelector(id) as HTMLElement;
    slider!.className = 'range-slider';
    return slider;
  }
}

тест

describe('private createSlider', () => {
  test('should return "div" element with class "range-slider"', () => {
    const sliderElement = document.createElement('div');

    const spyFunc = jest.fn((sliderId: string) => {
      sliderElement.id = sliderId;
    });

    Object.defineProperty(global.document, 'querySelector', { value: spyFunc });

    const sliderId = 'range-slider';
    const slider = new Slider(sliderId);
    const result = slider['createSlider'];
    // console.log(result);

    expect(spyFunc).toHaveBeenCalled();
    expect(result.element.nodeName).toBe('DIV');
    expect(result.element.id).toBe(sliderId);
    expect(result.element.classList.contains('range-slider')).toBeTruthy();
  });
});

получаю ошибку TypeError: Cannot set property 'className' of undefined введите сюда описание изображения


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