0

I am testing my react function using jest. While I am testing I am getting error focus of null for document.getElementById line.

I already tried this solution. jest + enzyme, using mount(), document.getElementById() returns null on component which appear after _method call But this is not working for me.

this is my abc.js

clearSearch = () => {
        const { typeSearchBox } = this.props;
        this.setState({ searchPlaceholderValue: PROMPTRAISED });
        this.setState({ searchValue: '' });
        this.setState({ showClearIcon: false });
        const searchBox = document.getElementById(`SearchBox_${typeSearchBox}`);
        searchBox.focus();
    };

this is my abc.test.js

it('+++ inputs valid filtered search text', () => {
     categoryWrapper.find('ClearIcon').prop('onClick')();
});

on click of clearIcon clearseach is trigger.

Giorgio Polvara - Gpx
  • 17,674
  • 9
  • 61
  • 60
aToz
  • 3
  • 7

1 Answers1

2

You need to mock document.getElementById function to return an object with focus function in your test file.

const mockUpObject = {
  focus: () => null,
};
global.document.getElementById = jest.fn(() => mockUpObject);
Tien Duong
  • 2,455
  • 1
  • 7
  • 26