mirror of
https://github.com/tenrok/vue-select.git
synced 2026-05-20 03:09:36 +03:00
71 lines
2.3 KiB
JavaScript
71 lines
2.3 KiB
JavaScript
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.find({ 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.find({ 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.find({ ref: "search" }).trigger("keydown.space");
|
|
expect(onKeyDown.mock.calls.length).toBe(1);
|
|
|
|
Select.find({ 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.find({ ref: "search" }).trigger("compositionstart");
|
|
Select.find({ ref: "search" }).trigger("keydown.enter");
|
|
expect(spy).toHaveBeenCalledTimes(0);
|
|
|
|
Select.find({ ref: "search" }).trigger("compositionend");
|
|
Select.find({ 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.find({ ref: "search" }).trigger("compositionstart");
|
|
Select.find({ ref: "search" }).trigger("keydown.tab");
|
|
expect(spy).toHaveBeenCalledTimes(0);
|
|
|
|
Select.find({ ref: "search" }).trigger("compositionend");
|
|
Select.find({ ref: "search" }).trigger("keydown.tab");
|
|
expect(spy).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|
|
});
|