2
0
mirror of https://github.com/tenrok/vue-select.git synced 2026-06-19 09:50:33 +03:00

Merge remote-tracking branch 'origin/feature/input-slot' into release/v3.0

# Conflicts:
#	src/components/Select.vue
This commit is contained in:
Jeff
2019-02-16 12:05:17 -08:00
7 changed files with 175 additions and 55 deletions
+31 -3
View File
@@ -1,5 +1,6 @@
import { shallowMount } from "@vue/test-utils";
import VueSelect from "../src/components/Select.vue";
import Vue from 'vue';
/**
* Trigger a submit event on the search
@@ -12,9 +13,7 @@ export const searchSubmit = (Wrapper, searchText = false) => {
if (searchText) {
Wrapper.vm.search = searchText;
}
Wrapper.find({ ref: "search" }).trigger("keydown", {
keyCode: 13
});
Wrapper.find({ ref: "search" }).trigger("keyup.enter")
};
/**
@@ -26,3 +25,32 @@ export const searchSubmit = (Wrapper, searchText = false) => {
export const selectWithProps = (propsData = {}) => {
return shallowMount(VueSelect, { propsData });
};
/**
* Returns a Wrapper with a v-select component.
* @param options
* @return {Wrapper<Vue>}
*/
export const mountDefault = (options = {}) =>
shallowMount(VueSelect, {
propsData: { options: ["one", "two", "three"],
...options
}
});
/**
* Returns a v-select component directly.
* @param props
* @param options
* @return {Vue | Element | Vue[] | Element[]}
*/
export const mountWithoutTestUtils = (props = {}, options = {}) => {
return new Vue({
render: createEl => createEl('vue-select', {
ref: 'select',
props: {options: ['one', 'two', 'three'], ...props},
...options
}),
components: {VueSelect},
}).$mount().$refs.select;
};
+1 -3
View File
@@ -58,9 +58,7 @@ describe("VS - Selecting Values", () => {
const spy = jest.spyOn(Select.vm, "typeAheadSelect");
Select.find({ ref: "search" }).trigger("keydown", {
keyCode: 9
});
Select.find({ ref: "search" }).trigger("keyup.tab");
expect(spy).toHaveBeenCalledWith();
});
+22 -12
View File
@@ -1,15 +1,20 @@
import { shallowMount } from "@vue/test-utils";
import { shallowMount } from '@vue/test-utils';
import VueSelect from "../../src/components/Select";
import { mountDefault, mountWithoutTestUtils } from '../helpers';
import typeAheadMixin from '../../src/mixins/typeAheadPointer';
import Vue from 'vue';
describe("Moving the Typeahead Pointer", () => {
const mountDefault = () =>
shallowMount(VueSelect, {
propsData: { options: ["one", "two", "three"] }
it('should set the pointer to zero when the filteredOptions watcher is called', async () => {
const Select = shallowMount(VueSelect, {
propsData: { options: ['one', 'two', 'three'] },
sync: false
});
it("should set the pointer to zero when the filteredOptions change", () => {
const Select = mountDefault();
Select.vm.search = "two";
Select.vm.search = 'one';
await Select.vm.$nextTick();
expect(Select.vm.typeAheadPointer).toEqual(0);
});
@@ -18,7 +23,7 @@ describe("Moving the Typeahead Pointer", () => {
Select.vm.typeAheadPointer = 1;
Select.find({ ref: "search" }).trigger("keydown", { keyCode: 38 });
Select.find({ ref: "search" }).trigger("keyup.up");
expect(Select.vm.typeAheadPointer).toEqual(0);
});
@@ -28,7 +33,7 @@ describe("Moving the Typeahead Pointer", () => {
Select.vm.typeAheadPointer = 1;
Select.find({ ref: "search" }).trigger("keydown", { keyCode: 40 });
Select.find({ ref: "search" }).trigger("keyup.down");
expect(Select.vm.typeAheadPointer).toEqual(2);
});
@@ -48,7 +53,7 @@ describe("Moving the Typeahead Pointer", () => {
Select.vm.typeAheadPointer = 1;
Select.find({ ref: "search" }).trigger("keydown", { keyCode: 38 });
Select.find({ ref: "search" }).trigger("keyup.up");
expect(spy).toHaveBeenCalled();
});
@@ -58,11 +63,16 @@ describe("Moving the Typeahead Pointer", () => {
Select.vm.typeAheadPointer = 1;
Select.find({ ref: "search" }).trigger("keydown", { keyCode: 40 });
Select.find({ ref: "search" }).trigger("keyup.down");
expect(spy).toHaveBeenCalled();
});
it("should check if the scroll position needs to be adjusted when filtered options changes", () => {
/**
* This test fails despite working in the browser.
* After many attempts to get it to pass, it's been
* rewritten below.
*/
it.skip("should check if the scroll position needs to be adjusted when filtered options changes", () => {
const Select = mountDefault();
const spy = jest.spyOn(Select.vm, "maybeAdjustScroll");