index.spec.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import PullRefresh from '..';
  2. import { mount, trigger, triggerDrag } from '../../../test/utils';
  3. test('change head content when pulling down', () => {
  4. const wrapper = mount(PullRefresh, {
  5. propsData: {
  6. value: false
  7. }
  8. });
  9. wrapper.vm.$on('input', value => {
  10. wrapper.vm.value = value;
  11. });
  12. const track = wrapper.find('.van-pull-refresh__track');
  13. // pulling
  14. trigger(track, 'touchstart', 0, 0);
  15. trigger(track, 'touchmove', 0, 20);
  16. expect(wrapper).toMatchSnapshot();
  17. // loosing
  18. trigger(track, 'touchmove', 0, 100);
  19. expect(wrapper).toMatchSnapshot();
  20. // loading
  21. trigger(track, 'touchend', 0, 100);
  22. expect(wrapper).toMatchSnapshot();
  23. // still loading
  24. triggerDrag(track, 0, 100);
  25. expect(wrapper).toMatchSnapshot();
  26. expect(wrapper.emitted('input')).toBeTruthy();
  27. expect(wrapper.emitted('refresh')).toBeTruthy();
  28. // end loading
  29. wrapper.vm.value = false;
  30. expect(wrapper).toMatchSnapshot();
  31. });
  32. test('pull a short distance', () => {
  33. const wrapper = mount(PullRefresh, {
  34. propsData: {
  35. value: false
  36. }
  37. });
  38. const track = wrapper.find('.van-pull-refresh__track');
  39. triggerDrag(track, 0, 10);
  40. expect(wrapper.emitted('input')).toBeFalsy();
  41. });
  42. test('not in page top', () => {
  43. const wrapper = mount(PullRefresh, {
  44. propsData: {
  45. value: false
  46. }
  47. });
  48. window.scrollTop = 100;
  49. const track = wrapper.find('.van-pull-refresh__track');
  50. // ignore touch event when not at page top
  51. triggerDrag(track, 0, 100);
  52. window.scrollTop = 0;
  53. trigger(track, 'touchmove', 0, 100);
  54. expect(wrapper).toMatchSnapshot();
  55. });