From a69fb5f1eb9edd3d51f03eb50772315bcb7e0c34 Mon Sep 17 00:00:00 2001 From: nemo-shen Date: Sat, 8 May 2021 09:35:44 +0800 Subject: [PATCH] test(Picker): add test cases (#8664) * test(Picker): add test cases * test(Picker): adjust type --- .../test/__snapshots__/cascade.legacy.js.snap | 69 -------- .../test/__snapshots__/cascade.spec.ts.snap | 167 ++++++++++++++++++ .../{cascade.legacy.js => cascade.spec.ts} | 63 +++++-- 3 files changed, 214 insertions(+), 85 deletions(-) delete mode 100644 src/picker/test/__snapshots__/cascade.legacy.js.snap create mode 100644 src/picker/test/__snapshots__/cascade.spec.ts.snap rename src/picker/test/{cascade.legacy.js => cascade.spec.ts} (65%) diff --git a/src/picker/test/__snapshots__/cascade.legacy.js.snap b/src/picker/test/__snapshots__/cascade.legacy.js.snap deleted file mode 100644 index df19f4545..000000000 --- a/src/picker/test/__snapshots__/cascade.legacy.js.snap +++ /dev/null @@ -1,69 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`disabled in cascade 1`] = ` -
  • -
    A2
    -
  • -`; - -exports[`should move to first option when all options are disabled 1`] = ` -
    - -
    -
    -
      -
    • -
      A1
      -
    • -
    • -
      A2
      -
    • -
    -
    -
    -
      -
    • -
      B1
      -
    • -
    • -
      B2
      -
    • -
    -
    -
    -
    -
    - -
    -`; - -exports[`should move to next option when default option is disabled 1`] = ` -
    - -
    -
    -
      -
    • -
      A1
      -
    • -
    • -
      A2
      -
    • -
    -
    -
    -
      -
    • -
      B3
      -
    • -
    • -
      B4
      -
    • -
    -
    -
    -
    -
    - -
    -`; diff --git a/src/picker/test/__snapshots__/cascade.spec.ts.snap b/src/picker/test/__snapshots__/cascade.spec.ts.snap new file mode 100644 index 000000000..4c66459a4 --- /dev/null +++ b/src/picker/test/__snapshots__/cascade.spec.ts.snap @@ -0,0 +1,167 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`disabled in cascade 1`] = ` +
  • +
    + A2 +
    +
  • +`; + +exports[`should move to first option when all options are disabled 1`] = ` +
    +
    + + +
    +
    +
    +
      +
    • +
      + A1 +
      +
    • +
    • +
      + A2 +
      +
    • +
    +
    +
    +
      +
    • +
      + B1 +
      +
    • +
    • +
      + B2 +
      +
    • +
    +
    +
    +
    +
    +
    +
    +
    +`; + +exports[`should move to next option when default option is disabled 1`] = ` +
    +
    + + +
    +
    +
    +
      +
    • +
      + A1 +
      +
    • +
    • +
      + A2 +
      +
    • +
    +
    +
    +
      +
    • +
      + B3 +
      +
    • +
    • +
      + B4 +
      +
    • +
    +
    +
    +
    +
    +
    +
    +
    +`; diff --git a/src/picker/test/cascade.legacy.js b/src/picker/test/cascade.spec.ts similarity index 65% rename from src/picker/test/cascade.legacy.js rename to src/picker/test/cascade.spec.ts index 7a410acab..4449d1799 100644 --- a/src/picker/test/cascade.legacy.js +++ b/src/picker/test/cascade.spec.ts @@ -1,5 +1,6 @@ import { Picker } from '..'; import { mount, triggerDrag } from '../../../test'; +import type { ComponentInstance } from '../../utils'; const COLUMNS = [ { @@ -30,6 +31,14 @@ const COLUMNS = [ }, ]; +const pickColumnText = (column: Array<{ text: string }>) => + column.map((item: { text: string }) => item.text); + +type ColumnValues = Array<{ + text: string; + children?: ColumnValues[]; +}>; + test('cascade columns', () => { const wrapper = mount(Picker, { props: { @@ -39,14 +48,22 @@ test('cascade columns', () => { }); wrapper.find('.van-picker__confirm').trigger('click'); - expect(wrapper.emitted('confirm')[0][0]).toEqual(['A1', 'B1', 'C1']); + + expect( + pickColumnText(wrapper.emitted<[ColumnValues]>('confirm')![0][0]) + ).toEqual(['A1', 'B1', 'C1']); triggerDrag(wrapper.find('.van-picker-column'), 0, -100); wrapper.find('.van-picker-column ul').trigger('transitionend'); - expect(wrapper.emitted('change')[0][1]).toEqual(['A2', 'B3', 'C5']); + + expect( + pickColumnText(wrapper.emitted<[ColumnValues]>('change')![0][0]) + ).toEqual(['A2', 'B3', 'C5']); wrapper.find('.van-picker__confirm').trigger('click'); - expect(wrapper.emitted('confirm')[1][0]).toEqual(['A2', 'B3', 'C5']); + expect( + pickColumnText(wrapper.emitted<[ColumnValues]>('confirm')![1][0]) + ).toEqual(['A2', 'B3', 'C5']); }); test('setColumnValue of cascade columns', () => { @@ -57,13 +74,17 @@ test('setColumnValue of cascade columns', () => { }, }); - wrapper.vm.setColumnValue(0, 'A2'); + (wrapper.vm as ComponentInstance).setColumnValue(0, 'A2'); wrapper.find('.van-picker__confirm').trigger('click'); - expect(wrapper.emitted('confirm')[0][0]).toEqual(['A2', 'B3', 'C5']); + expect( + pickColumnText(wrapper.emitted<[ColumnValues]>('confirm')![0][0]) + ).toEqual(['A2', 'B3', 'C5']); - wrapper.vm.setColumnValue(1, 'B4'); + (wrapper.vm as ComponentInstance).setColumnValue(1, 'B4'); wrapper.find('.van-picker__confirm').trigger('click'); - expect(wrapper.emitted('confirm')[1][0]).toEqual(['A2', 'B4', 'C7']); + expect( + pickColumnText(wrapper.emitted<[ColumnValues]>('confirm')![1][0]) + ).toEqual(['A2', 'B4', 'C7']); }); test('setValues of cascade columns', () => { @@ -74,9 +95,11 @@ test('setValues of cascade columns', () => { }, }); - wrapper.vm.setValues(['A2', 'B4', 'C8']); + (wrapper.vm as ComponentInstance).setValues(['A2', 'B4', 'C8']); wrapper.find('.van-picker__confirm').trigger('click'); - expect(wrapper.emitted('confirm')[0][0]).toEqual(['A2', 'B4', 'C8']); + expect( + pickColumnText(wrapper.emitted<[ColumnValues]>('confirm')![0][0]) + ).toEqual(['A2', 'B4', 'C8']); }); test('setColumnIndex of cascade columns', () => { @@ -87,13 +110,17 @@ test('setColumnIndex of cascade columns', () => { }, }); - wrapper.vm.setColumnIndex(0, 1); + (wrapper.vm as ComponentInstance).setColumnIndex(0, 1); wrapper.find('.van-picker__confirm').trigger('click'); - expect(wrapper.emitted('confirm')[0][0]).toEqual(['A2', 'B3', 'C5']); + expect( + pickColumnText(wrapper.emitted<[ColumnValues]>('confirm')![0][0]) + ).toEqual(['A2', 'B3', 'C5']); - wrapper.vm.setColumnIndex(1, 1); + (wrapper.vm as ComponentInstance).setColumnIndex(1, 1); wrapper.find('.van-picker__confirm').trigger('click'); - expect(wrapper.emitted('confirm')[1][0]).toEqual(['A2', 'B4', 'C7']); + expect( + pickColumnText(wrapper.emitted<[ColumnValues]>('confirm')![1][0]) + ).toEqual(['A2', 'B4', 'C7']); }); test('setIndexes of cascade columns', () => { @@ -104,9 +131,11 @@ test('setIndexes of cascade columns', () => { }, }); - wrapper.vm.setIndexes([1, 0, 1]); + (wrapper.vm as ComponentInstance).setIndexes([1, 0, 1]); wrapper.find('.van-picker__confirm').trigger('click'); - expect(wrapper.emitted('confirm')[0][0]).toEqual(['A2', 'B3', 'C6']); + expect( + pickColumnText(wrapper.emitted<[ColumnValues]>('confirm')![0][0]) + ).toEqual(['A2', 'B3', 'C6']); }); test('disabled in cascade', () => { @@ -123,7 +152,9 @@ test('disabled in cascade', () => { }, }); - expect(wrapper.find('.van-picker-column__item--disabled')).toMatchSnapshot(); + expect( + wrapper.find('.van-picker-column__item--disabled').html() + ).toMatchSnapshot(); }); test('should move to next option when default option is disabled', () => {