text: import { mountDefault } from '../helpers'
  
  describe('Custom Keydown Handlers', () => {
    it('can use the map-keydown prop to trigger custom behaviour', () => {
      const onKeyDown = jest.fn()
      const Select = mountDefault({
        mapKeydown: (defaults, vm) => ({ ...defaults, 32: onKeyDown }),
      })
  
      Select.findComponent({ ref: 'search' }).trigger('keydown.space')
  
      expect(onKeyDown.mock.calls.length).toBe(1)
    })
  
    it('selectOnKeyCodes should trigger a selection for custom keycodes', () => {
      const Select = mountDefault({
        selectOnKeyCodes: [32],
      })
  
      const spy = jest.spyOn(Select.vm, 'typeAheadSelect')
  
      Select.findComponent({ ref: 'search' }).trigger('keydown.space')
  
      expect(spy).toHaveBeenCalledTimes(1)
    })
  
    it('even works when combining selectOnKeyCodes with map-keydown', () => {
      const onKeyDown = jest.fn()
      const Select = mountDefault({
        mapKeydown: (defaults, vm) => ({ ...defaults, 32: onKeyDown }),
        selectOnKeyCodes: [9],
      })
  
      const spy = jest.spyOn(Select.vm, 'typeAheadSelect')
  
      Select.findComponent({ ref: 'search' }).trigger('keydown.space')
      expect(onKeyDown.mock.calls.length).toBe(1)
  
      Select.findComponent({ ref: 'search' }).trigger('keydown.tab')
      expect(spy).toHaveBeenCalledTimes(1)
    })
  
    describe('CompositionEvent support', () => {
      it('will not select a value with enter if the user is composing', () => {
        const Select = mountDefault()
        const spy = jest.spyOn(Select.vm, 'typeAheadSelect')
  
        Select.findComponent({ ref: 'search' }).trigger('compositionstart')
        Select.findComponent({ ref: 'search' }).trigger('keydown.enter')
        expect(spy).toHaveBeenCalledTimes(0)
  
        Select.findComponent({ ref: 'search' }).trigger('compositionend')
        Select.findComponent({ ref: 'search' }).trigger('keydown.enter')
        expect(spy).toHaveBeenCalledTimes(1)
      })
  
      it('will not select a value with tab if the user is composing', () => {
        const Select = mountDefault({ selectOnTab: true })
        const spy = jest.spyOn(Select.vm, 'typeAheadSelect')
  
        Select.findComponent({ ref: 'search' }).trigger('compositionstart')
        Select.findComponent({ ref: 'search' }).trigger('keydown.tab')
        expect(spy).toHaveBeenCalledTimes(0)
  
        Select.findComponent({ ref: 'search' }).trigger('compositionend')
        Select.findComponent({ ref: 'search' }).trigger('keydown.tab')
        expect(spy).toHaveBeenCalledTimes(1)
      })
    })
  })
  