index.spec.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import Area from '..';
  2. import areaList from '../demo/area.simple';
  3. import { mount, later, triggerDrag } from '../../../test/utils';
  4. const firstOption = [
  5. { code: '110000', name: '北京市' },
  6. { code: '110100', name: '北京市' },
  7. { code: '110101', name: '东城区' }
  8. ];
  9. const secondOption = [
  10. { code: '120000', name: '天津市' },
  11. { code: '120100', name: '天津市' },
  12. { code: '120101', name: '和平区' }
  13. ];
  14. test('confirm & cancel event', async () => {
  15. const onConfirm = jest.fn();
  16. const onCancel = jest.fn();
  17. const wrapper = mount(Area, {
  18. propsData: {
  19. areaList
  20. },
  21. listeners: {
  22. confirm: onConfirm,
  23. cancel: onCancel
  24. }
  25. });
  26. await later();
  27. wrapper.find('.van-picker__confirm').trigger('click');
  28. wrapper.find('.van-picker__cancel').trigger('click');
  29. expect(onConfirm).toHaveBeenCalledWith(firstOption, [0, 0, 0]);
  30. expect(onCancel).toHaveBeenCalledWith(firstOption, [0, 0, 0]);
  31. });
  32. test('watch areaList & code', async () => {
  33. const wrapper = mount(Area, {
  34. propsData: {
  35. areaList
  36. }
  37. });
  38. expect(wrapper).toMatchSnapshot();
  39. wrapper.setProps({ value: '110117' });
  40. await later();
  41. expect(wrapper).toMatchSnapshot();
  42. wrapper.setProps({
  43. value: ''
  44. });
  45. expect(wrapper).toMatchSnapshot();
  46. });
  47. test('change option', () => {
  48. const onChange = jest.fn();
  49. const wrapper = mount(Area, {
  50. propsData: {
  51. areaList
  52. },
  53. listeners: {
  54. change: onChange
  55. }
  56. });
  57. const columns = wrapper.findAll('.van-picker-column');
  58. expect(wrapper).toMatchSnapshot();
  59. triggerDrag(columns.at(0), 0, -100);
  60. expect(wrapper).toMatchSnapshot();
  61. triggerDrag(columns.at(2), 0, -100);
  62. expect(wrapper).toMatchSnapshot();
  63. expect(onChange.mock.calls[0][1]).toEqual(secondOption);
  64. });
  65. test('getValues method', () => {
  66. const wrapper = mount(Area, {
  67. propsData: {
  68. areaList
  69. },
  70. created() {
  71. expect(this.getValues()).toEqual([]);
  72. }
  73. });
  74. expect(wrapper.vm.getValues()).toEqual(firstOption);
  75. });
  76. test('reset method', async () => {
  77. const wrapper = mount(Area, {
  78. propsData: {
  79. areaList,
  80. value: '120225'
  81. }
  82. });
  83. await later();
  84. expect(wrapper).toMatchSnapshot();
  85. wrapper.vm.reset();
  86. expect(wrapper).toMatchSnapshot();
  87. });