From 6fbdc4ffc39fd70267e4dbdc1d3b0a0face710b0 Mon Sep 17 00:00:00 2001 From: neverland Date: Fri, 26 Apr 2019 09:25:57 +0800 Subject: [PATCH] [bugfix] AddressList: not trigger select event when click radio icon (#3214) --- packages/address-list/Item.tsx | 20 +++++++++++++------- packages/address-list/test/index.spec.js | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/packages/address-list/Item.tsx b/packages/address-list/Item.tsx index 80219b6e7..a3ddeab34 100644 --- a/packages/address-list/Item.tsx +++ b/packages/address-list/Item.tsx @@ -36,6 +36,12 @@ function AddressItem( ) { const { disabled, switchable } = props; + const onSelect = () => { + if (props.switchable) { + emit(ctx, 'select'); + } + }; + const renderRightIcon = () => ( {data.address} ]; - return props.switchable ? {Info} : Info; - }; - - const onSelect = () => { - if (props.switchable) { - emit(ctx, 'select'); - } + return props.switchable ? ( + + {Info} + + ) : ( + Info + ); }; return ( diff --git a/packages/address-list/test/index.spec.js b/packages/address-list/test/index.spec.js index f6cee8ffc..bec569b01 100644 --- a/packages/address-list/test/index.spec.js +++ b/packages/address-list/test/index.spec.js @@ -26,3 +26,21 @@ test('unswitchable', () => { expect(wrapper).toMatchSnapshot(); }); + +test('select event', () => { + const onSelect = jest.fn(); + const wrapper = mount(AddressList, { + propsData: { + list + }, + context: { + on: { + select: onSelect + } + } + }); + + wrapper.find('.van-radio__icon').trigger('click'); + + expect(onSelect).toHaveBeenCalled(); +});