|
|
@@ -0,0 +1,123 @@
|
|
|
+import { config, mount } from '@vue/test-utils';
|
|
|
+import { nextTick, toRefs, reactive } from 'vue';
|
|
|
+import NutIcon from '../../icon/index.vue';
|
|
|
+import NutPopup from '../../popup/index.vue';
|
|
|
+import NutElevator from '../../elevator/index.vue';
|
|
|
+import Address from '../index.vue';
|
|
|
+import { addressListData, addressExistData } from '../address-list';
|
|
|
+
|
|
|
+beforeAll(() => {
|
|
|
+ config.global.components = {
|
|
|
+ NutIcon,
|
|
|
+ NutPopup,
|
|
|
+ NutElevator
|
|
|
+ };
|
|
|
+});
|
|
|
+
|
|
|
+afterAll(() => {
|
|
|
+ config.global.components = {};
|
|
|
+});
|
|
|
+
|
|
|
+test('address render', async () => {
|
|
|
+ const wrapper = mount(Address, {
|
|
|
+ props: {
|
|
|
+ visible: true,
|
|
|
+ province: addressListData.province,
|
|
|
+ city: addressListData.city,
|
|
|
+ country: addressListData.country,
|
|
|
+ town: addressListData.town,
|
|
|
+ isWrapTeleport: false
|
|
|
+ }
|
|
|
+ });
|
|
|
+ await nextTick();
|
|
|
+ expect(wrapper.find('.arrow-close').exists()).toBeTruthy();
|
|
|
+ expect(wrapper.findAll('.region-item').length).toBe(5);
|
|
|
+});
|
|
|
+
|
|
|
+test('choose address item', async () => {
|
|
|
+ const wrapper = mount(Address, {
|
|
|
+ props: {
|
|
|
+ visible: true,
|
|
|
+ province: addressListData.province,
|
|
|
+ city: addressListData.city,
|
|
|
+ country: addressListData.country,
|
|
|
+ town: addressListData.town,
|
|
|
+ isWrapTeleport: false
|
|
|
+ }
|
|
|
+ });
|
|
|
+ wrapper.find('.region-item').trigger('click');
|
|
|
+ await nextTick();
|
|
|
+ expect(wrapper.find('.tab-item').text()).toEqual('北京');
|
|
|
+});
|
|
|
+
|
|
|
+test('default choose address', async () => {
|
|
|
+ const wrapper = mount(Address, {
|
|
|
+ props: {
|
|
|
+ modelValue: [1, 7, 3],
|
|
|
+ visible: true,
|
|
|
+ province: addressListData.province,
|
|
|
+ city: addressListData.city,
|
|
|
+ country: addressListData.country,
|
|
|
+ town: addressListData.town,
|
|
|
+ isWrapTeleport: false
|
|
|
+ }
|
|
|
+ });
|
|
|
+ wrapper.vm.initCustomSelected();
|
|
|
+ await nextTick();
|
|
|
+ expect(wrapper.findAll('.tab-item')[0].text()).toEqual('北京');
|
|
|
+ expect(wrapper.findAll('.tab-item')[1].text()).toEqual('朝阳区');
|
|
|
+ expect(wrapper.findAll('.tab-item')[2].text()).toEqual('八里庄街道');
|
|
|
+});
|
|
|
+
|
|
|
+test('Exist address', async () => {
|
|
|
+ const wrapper = mount(Address, {
|
|
|
+ props: {
|
|
|
+ type: 'exist',
|
|
|
+ visible: true,
|
|
|
+ existAddress: addressExistData,
|
|
|
+ isShowCustomAddress: false,
|
|
|
+ isWrapTeleport: false
|
|
|
+ }
|
|
|
+ });
|
|
|
+ await nextTick();
|
|
|
+ expect(wrapper.find('.choose-other').exists()).toBeFalsy();
|
|
|
+ expect(wrapper.findAll('.exist-item').length).toBe(3);
|
|
|
+});
|
|
|
+
|
|
|
+test('Exist address choose event', async () => {
|
|
|
+ const wrapper = mount(Address, {
|
|
|
+ props: {
|
|
|
+ type: 'exist',
|
|
|
+ visible: true,
|
|
|
+ existAddress: addressExistData,
|
|
|
+ isWrapTeleport: false
|
|
|
+ }
|
|
|
+ });
|
|
|
+ await nextTick();
|
|
|
+ wrapper.find('.exist-item').trigger('click');
|
|
|
+ const chooseAddress = wrapper.emitted().selected[0];
|
|
|
+ expect((chooseAddress as []).length).toBe(3);
|
|
|
+});
|
|
|
+
|
|
|
+test('Exist address & list address', async () => {
|
|
|
+ const wrapper = mount(Address, {
|
|
|
+ props: {
|
|
|
+ type: 'exist',
|
|
|
+ visible: true,
|
|
|
+ existAddress: addressExistData,
|
|
|
+ isWrapTeleport: false,
|
|
|
+ province: addressListData.province,
|
|
|
+ city: addressListData.city,
|
|
|
+ country: addressListData.country,
|
|
|
+ town: addressListData.town
|
|
|
+ }
|
|
|
+ });
|
|
|
+ await nextTick();
|
|
|
+ const changeBtn = wrapper.find('.choose-other');
|
|
|
+ expect(changeBtn.exists()).toBeTruthy();
|
|
|
+
|
|
|
+ changeBtn.trigger('click');
|
|
|
+ await nextTick();
|
|
|
+ expect(wrapper.find('.arrow-back').exists()).toBeTruthy();
|
|
|
+ expect(wrapper.find('.custom-address').exists()).toBeTruthy();
|
|
|
+});
|