vant/test/specs/slider.spec.js

91 lines
2.1 KiB
JavaScript

import Slider from 'packages/slider';
import { mount } from 'avoriaz';
import { triggerTouch } from '../utils';
describe('Slider', () => {
let wrapper;
afterEach(() => {
wrapper && wrapper.destroy();
});
it('create a simple slider', () => {
wrapper = mount(Slider, {
propsData: {
value: 50,
disabled: true
}
});
expect(wrapper.hasClass('van-slider')).to.be.true;
expect(wrapper.find('.van-slider__bar').length).to.equal(1);
expect(wrapper.vm.value).to.equal(50);
expect(wrapper.hasClass('van-slider--disabled')).to.equal(true);
wrapper.setProps({
value: 100
});
wrapper.update();
expect(wrapper.vm.value).to.equal(100);
});
it('test click bar', () => {
wrapper = mount(Slider, {
propsData: {
disabled: true,
value: 50
}
});
const eventStub = sinon.stub(wrapper.vm, '$emit');
const $bar = wrapper.find('.van-slider')[0];
$bar.trigger('click');
const button = wrapper.find('.van-slider__button')[0];
triggerTouch(button, 'touchstart', 0, 0);
expect(wrapper.vm.startX).to.equal(undefined);
triggerTouch(button, 'touchmove', 50, 0);
expect(wrapper.vm.offsetX).to.equal(undefined);
triggerTouch(button, 'touchend', 50, 0);
expect(wrapper.vm.offsetX).to.equal(undefined);
expect(eventStub.called).to.equal(false);
wrapper.setData({
disabled: false
});
wrapper.update();
$bar.trigger('click');
expect(wrapper.vm.disabled).to.equal(false);
expect(eventStub.called).to.equal(true);
});
it('drag button', () => {
wrapper = mount(Slider, {
propsData: {
value: 50
}
});
const button = wrapper.find('.van-slider__button')[0];
triggerTouch(button, 'touchstart', 0, 0);
expect(wrapper.vm.startX).to.equal(0);
triggerTouch(button, 'touchmove', 50, 0);
expect(wrapper.vm.offsetX).to.equal(50);
triggerTouch(button, 'touchend', 50, 0);
expect(wrapper.vm.offsetX).to.equal(50);
wrapper.setData({
disabled: true
});
triggerTouch(button, 'touchstart', 0, 0);
expect(wrapper.vm.startX).to.equal(0);
});
});