Как протестировать метод который ищет элемент на странице с помощью 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
