test(SwipeCell): update test cases
This commit is contained in:
@@ -0,0 +1,195 @@
|
||||
import SwipeCell from '..';
|
||||
import {
|
||||
mount,
|
||||
triggerDrag,
|
||||
later,
|
||||
mockGetBoundingClientRect,
|
||||
} from '../../../test';
|
||||
|
||||
const defaultProps = {
|
||||
props: {
|
||||
leftWidth: 100,
|
||||
rightWidth: 100,
|
||||
},
|
||||
slots: {
|
||||
left: () => 'Left',
|
||||
right: () => 'Right',
|
||||
},
|
||||
};
|
||||
|
||||
test('should allow to drag to show left part', async () => {
|
||||
const wrapper = mount(SwipeCell, defaultProps);
|
||||
|
||||
triggerDrag(wrapper, 100, 0);
|
||||
await later();
|
||||
|
||||
const track = wrapper.find('.van-swipe-cell__wrapper').element;
|
||||
expect(track.style.transform).toEqual('translate3d(100px, 0, 0)');
|
||||
});
|
||||
|
||||
test('should allow to drag to show right part', async () => {
|
||||
const wrapper = mount(SwipeCell, defaultProps);
|
||||
|
||||
triggerDrag(wrapper, -100, 0);
|
||||
await later();
|
||||
|
||||
const track = wrapper.find('.van-swipe-cell__wrapper').element;
|
||||
expect(track.style.transform).toEqual('translate3d(-100px, 0, 0)');
|
||||
});
|
||||
|
||||
test('should call beforeClose before closing', () => {
|
||||
let position;
|
||||
|
||||
const wrapper = mount(SwipeCell, {
|
||||
...defaultProps,
|
||||
props: {
|
||||
...defaultProps.props,
|
||||
beforeClose(params) {
|
||||
({ position } = params);
|
||||
},
|
||||
},
|
||||
});
|
||||
const track = wrapper.find('.van-swipe-cell__wrapper').element;
|
||||
|
||||
wrapper.trigger('click');
|
||||
expect(position).toEqual(undefined);
|
||||
|
||||
wrapper.vm.open('left');
|
||||
wrapper.trigger('click');
|
||||
expect(position).toEqual('cell');
|
||||
|
||||
wrapper.find('.van-swipe-cell__left').trigger('click');
|
||||
expect(position).toEqual('left');
|
||||
|
||||
wrapper.find('.van-swipe-cell__right').trigger('click');
|
||||
expect(position).toEqual('right');
|
||||
|
||||
wrapper.vm.close();
|
||||
expect(track.style.transform).toEqual('translate3d(0px, 0, 0)');
|
||||
});
|
||||
|
||||
test('should close swipe cell after clicked', async () => {
|
||||
const wrapper = mount(SwipeCell, defaultProps);
|
||||
|
||||
wrapper.vm.open('left');
|
||||
await later();
|
||||
|
||||
const track = wrapper.find('.van-swipe-cell__wrapper').element;
|
||||
expect(track.style.transform).toEqual('translate3d(100px, 0, 0)');
|
||||
|
||||
await wrapper.trigger('click');
|
||||
expect(track.style.transform).toEqual('translate3d(0px, 0, 0)');
|
||||
});
|
||||
|
||||
test('should emit open event with name when using name prop', () => {
|
||||
const wrapper = mount(SwipeCell, {
|
||||
...defaultProps,
|
||||
props: {
|
||||
...defaultProps.props,
|
||||
name: 'test',
|
||||
},
|
||||
});
|
||||
|
||||
wrapper.vm.open('left');
|
||||
expect(wrapper.emitted('open')[0]).toEqual([
|
||||
{ name: 'test', position: 'left' },
|
||||
]);
|
||||
});
|
||||
|
||||
test('should emit close event with name when using name prop', () => {
|
||||
const wrapper = mount(SwipeCell, {
|
||||
...defaultProps,
|
||||
props: {
|
||||
...defaultProps.props,
|
||||
name: 'test',
|
||||
},
|
||||
});
|
||||
|
||||
wrapper.vm.open('left');
|
||||
wrapper.vm.close();
|
||||
expect(wrapper.emitted('close')[0]).toEqual([{ name: 'test' }]);
|
||||
});
|
||||
|
||||
test('should reset transform after short draging', async () => {
|
||||
const wrapper = mount(SwipeCell, defaultProps);
|
||||
|
||||
triggerDrag(wrapper, 5, 0);
|
||||
await later();
|
||||
|
||||
const track = wrapper.find('.van-swipe-cell__wrapper').element;
|
||||
expect(track.style.transform).toEqual('translate3d(0px, 0, 0)');
|
||||
});
|
||||
|
||||
test('should not allow to drag when using disabled prop', async () => {
|
||||
const wrapper = mount(SwipeCell, {
|
||||
props: {
|
||||
...defaultProps.props,
|
||||
disabled: true,
|
||||
},
|
||||
});
|
||||
|
||||
triggerDrag(wrapper, 50, 0);
|
||||
await later();
|
||||
|
||||
const track = wrapper.find('.van-swipe-cell__wrapper').element;
|
||||
expect(track.style.transform).toEqual('translate3d(0px, 0, 0)');
|
||||
});
|
||||
|
||||
test('should auto calc width', async () => {
|
||||
const restoreMock = mockGetBoundingClientRect({
|
||||
width: 50,
|
||||
});
|
||||
|
||||
const wrapper = mount(SwipeCell, {
|
||||
slots: defaultProps.slots,
|
||||
});
|
||||
|
||||
triggerDrag(wrapper, 100, 0);
|
||||
await later();
|
||||
|
||||
const track = wrapper.find('.van-swipe-cell__wrapper').element;
|
||||
expect(track.style.transform).toEqual('translate3d(50px, 0, 0)');
|
||||
restoreMock();
|
||||
});
|
||||
|
||||
test('should emit open event when opening left side', () => {
|
||||
const wrapper = mount(SwipeCell, defaultProps);
|
||||
|
||||
triggerDrag(wrapper, 50, 0);
|
||||
expect(wrapper.emitted('open')[0][0]).toEqual({
|
||||
name: '',
|
||||
position: 'left',
|
||||
});
|
||||
});
|
||||
|
||||
test('should emit open event when opening right side', () => {
|
||||
const wrapper = mount(SwipeCell, defaultProps);
|
||||
|
||||
triggerDrag(wrapper, -50, 0);
|
||||
expect(wrapper.emitted('open')[0][0]).toEqual({
|
||||
name: '',
|
||||
position: 'right',
|
||||
});
|
||||
});
|
||||
|
||||
test('should emit close event after closed', () => {
|
||||
const wrapper = mount(SwipeCell, defaultProps);
|
||||
|
||||
wrapper.vm.open('left');
|
||||
wrapper.vm.close();
|
||||
|
||||
expect(wrapper.emitted('close')[0][0]).toEqual({
|
||||
name: '',
|
||||
});
|
||||
});
|
||||
|
||||
test('should not trigger close event again if already closed', () => {
|
||||
const wrapper = mount(SwipeCell, defaultProps);
|
||||
|
||||
wrapper.vm.open('left');
|
||||
wrapper.vm.close();
|
||||
expect(wrapper.emitted('close').length).toEqual(1);
|
||||
|
||||
wrapper.vm.close();
|
||||
expect(wrapper.emitted('close').length).toEqual(1);
|
||||
});
|
||||
Reference in New Issue
Block a user