mirror of
https://github.com/tenrok/vue-select.git
synced 2026-05-17 02:29:37 +03:00
54 lines
1.5 KiB
JavaScript
54 lines
1.5 KiB
JavaScript
import { selectWithProps } from "../helpers";
|
|
|
|
describe("Selectable prop", () => {
|
|
it("should select selectable option if clicked", () => {
|
|
const Select = selectWithProps({
|
|
options: ["one", "two", "three"],
|
|
selectable: (option) => option === "one"
|
|
});
|
|
|
|
Select.vm.$data.open = true;
|
|
|
|
Select.find(".vs__dropdown-menu li:first-child").trigger("mousedown");
|
|
expect(Select.vm.selectedValue).toEqual(["one"]);
|
|
})
|
|
|
|
it("should not select not selectable option if clicked", () => {
|
|
const Select = selectWithProps({
|
|
options: ["one", "two", "three"],
|
|
selectable: (option) => option === "one"
|
|
});
|
|
|
|
Select.vm.$data.open = true;
|
|
|
|
Select.find(".vs__dropdown-menu li:last-child").trigger("mousedown");
|
|
expect(Select.vm.selectedValue).toEqual([]);
|
|
});
|
|
|
|
it("should skip non-selectable option on down arrow keyUp", () => {
|
|
const Select = selectWithProps({
|
|
options: ["one", "two", "three"],
|
|
selectable: (option) => option !== "two"
|
|
});
|
|
|
|
Select.vm.typeAheadPointer = 1;
|
|
|
|
Select.find({ ref: "search" }).trigger("keydown.down");
|
|
|
|
expect(Select.vm.typeAheadPointer).toEqual(2);
|
|
})
|
|
|
|
it("should skip non-selectable option on up arrow keyUp", () => {
|
|
const Select = selectWithProps({
|
|
options: ["one", "two", "three"],
|
|
selectable: (option) => option !== "two"
|
|
});
|
|
|
|
Select.vm.typeAheadPointer = 2;
|
|
|
|
Select.find({ ref: "search" }).trigger("keydown.up");
|
|
|
|
expect(Select.vm.typeAheadPointer).toEqual(0);
|
|
})
|
|
})
|