Поддельный шпион на входе в монтировку - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь прикрепить шпиона, чтобы проверить фокус на элементе ввода.

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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...