Vue Test Utils, событие Keydown больше не запускается keyCode в тесте

В тестовой среде событие нажатия клавиши больше не запускается keyCode после обновления vue-test-utils до версии 1.0.0-beta.26 или выше, например:

Vue

  <div @keydown="onKeydown"></div>

Скрипты

  public onKeydown (event: KeyboardEvent) {
    if(event.keyCode === 13) {
      this.keyName = 'enter'
    } else if(event.keyCode === 67) {
      this.keyName = 'c'
    }
  }

В предыдущей версии все тесты проходят с параметром keyCode.

// version 1.0.0-beta.25
const wrapper = shallowMount(HelloWorld)
wrapper.find('div').trigger('keydown', { keyCode: 13 })
expect(wrapper.vm.keyName).toBe('enter') // PASS

wrapper.find('div').trigger('keydown', { keyCode: '67' })
expect(wrapper.vm.keyName).toBe('c')  // PASS

После обновления версии мой тест НЕ прошел.

Пробовал использовать keydown.enter, он работает для клавиши enter, но не работает для клавиши 'c'.

// version 1.0.0-beta.26
wrapper.find('div').trigger('keydown.enter')
expect(wrapper.vm.keyName).toBe('enter') // PASS

wrapper.find('div').trigger('keydown.c')
expect(wrapper.vm.keyName).toBe('c')  // FAILED

Любое предложение, как вызвать событие нажатия клавиши с помощью клавиши a-z?


person Ean    schedule 07.05.2019    source источник


Ответы (1)


Вы должны передать key в качестве опции. Из официальных документов

it('Magic character "a" sets quantity to 13', () => {
    const wrapper = mount(QuantityComponent)

    wrapper.trigger('keydown', {
      key: 'a'
    })

    expect(wrapper.vm.quantity).toBe(13)
  })
person Arunmozhi    schedule 03.01.2020
comment
Спасибо. Думаю, мне не следует использовать event.keyCode, он устарел. - person Ean; 24.02.2020