Я пытаюсь прикрепить шпиона, чтобы проверить фокус на элементе ввода.
Code:
*1
setInput = ref => {
this.nameInput = ref;
};
*2
componentDidMount = () => {
if (id && activeId === id) {
this.nameInput && this.nameInput.focus();
}
};
*3
<Input innerRef={this.setInput} />
Test:
describe('componentDidMount()', () => {
let inputFocusSpy, store;
beforeEach(() => {
store = mockStore();
inputFocusSpy = sinon.spy();
});
describe('testing here', () => {
beforeEach(() => {
const props = {
activeId: id,
};
wrapper = mount(
<Provider store={store}>
<Attribute {...baseProps} {...props} />
</Provider>
);
});
it('focuses the input', () => {
expect(inputFocusSpy, 'was called once');
});
});
Выполнение этого вызовет первоначально setInput и componentDidMount всякий раз, когда требуется и вызывается фокус.Но я не могу понять, как прикрепить focusSpy к фокусу, чтобы проверить, был ли он вызван.
И wrapper.instance (). Setinput (inputfocusSpy, 'focus') не работает, но я нехочу явно вызвать componentDidMount.