[improvement] rename packages dir to src (#3659)

This commit is contained in:
neverland
2019-06-27 11:25:57 +08:00
committed by GitHub
parent 8489918dca
commit 75c79b7044
619 changed files with 21 additions and 21 deletions
@@ -0,0 +1,53 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`renders demo correctly 1`] = `
<div>
<div>
<div class="van-address-edit">
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>姓名</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="text" placeholder="收货人姓名" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>电话</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>地区</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-address-edit-detail">
<div class="van-cell__value van-cell__value--alone">
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>详细地址</span></div>
<div class="van-cell__value">
<div class="van-field__body"><textarea rows="1" maxlength="200" placeholder="街道门牌、楼层房间号等信息" class="van-field__control" style="height: auto;"></textarea></div>
</div>
</div>
</div>
</div>
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>邮政编码</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="tel" maxlength="6" placeholder="邮政编码" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-cell--center van-switch-cell">
<div class="van-cell__title"><span>设为默认收货地址</span></div>
<div class="van-cell__value">
<div role="switch" aria-checked="false" class="van-switch" style="font-size: 24px;">
<div class="van-switch__node"></div>
</div>
</div>
</div>
<div class="van-address-edit__buttons"><button class="van-button van-button--danger van-button--normal van-button--block"><span class="van-button__text">保存</span></button><button class="van-button van-button--default van-button--normal van-button--block"><span class="van-button__text">删除</span></button></div>
</div>
</div>
</div>
`;
@@ -0,0 +1,129 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`create a AddressEdit 1`] = `
<div class="van-address-edit">
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>姓名</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="text" placeholder="收货人姓名" value="" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>电话</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" value="" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>地区</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" value="" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-address-edit-detail">
<div class="van-cell__value van-cell__value--alone">
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>详细地址</span></div>
<div class="van-cell__value">
<div class="van-field__body"><textarea rows="1" maxlength="200" placeholder="街道门牌、楼层房间号等信息" class="van-field__control"></textarea></div>
</div>
</div>
</div>
</div>
<div class="van-address-edit__buttons"><button class="van-button van-button--danger van-button--normal van-button--block"><span class="van-button__text">保存</span></button></div>
<div name="van-popup-slide-bottom" class="van-popup van-popup--bottom" style="display:none;">
<div class="van-picker van-area">
<div class="van-hairline--top-bottom van-picker__toolbar">
<div role="button" tabindex="0" class="van-picker__cancel">取消</div>
<div role="button" tabindex="0" class="van-picker__confirm">确认</div>
</div>
<div class="van-loading van-loading--circular van-picker__loading"><span class="van-loading__spinner van-loading__spinner--circular" style="color:#1989fa;"><svg viewBox="25 25 50 50" class="van-loading__circular"><circle cx="50" cy="50" r="20" fill="none"></circle></svg></span></div>
<div class="van-picker__columns" style="height:220px;">
<div class="van-picker-column">
<ul class="van-picker-column__wrapper" style="transform:translate3d(0, 88px, 0);transition-duration:0ms;transition-property:none;line-height:44px;"></ul>
</div>
<div class="van-picker-column">
<ul class="van-picker-column__wrapper" style="transform:translate3d(0, 88px, 0);transition-duration:0ms;transition-property:none;line-height:44px;"></ul>
</div>
<div class="van-picker-column">
<ul class="van-picker-column__wrapper" style="transform:translate3d(0, 88px, 0);transition-duration:0ms;transition-property:none;line-height:44px;"></ul>
</div>
<div class="van-picker__mask" style="background-size:100% 88px;"></div>
<div class="van-hairline--top-bottom van-picker__frame" style="height:44px;"></div>
</div>
<!---->
</div>
</div>
</div>
`;
exports[`create a AddressEdit with props 1`] = `
<div class="van-address-edit">
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>姓名</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="text" placeholder="收货人姓名" value="测试" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>电话</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="tel" placeholder="收货人手机号" value="13000000000" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>地区</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="text" placeholder="选择省 / 市 / 区" readonly="readonly" value="北京市/朝阳区" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-address-edit-detail">
<div class="van-cell__value van-cell__value--alone">
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>详细地址</span></div>
<div class="van-cell__value">
<div class="van-field__body"><textarea rows="1" maxlength="200" placeholder="街道门牌、楼层房间号等信息" class="van-field__control">详细地址</textarea></div>
</div>
</div>
</div>
</div>
<div class="van-cell van-field">
<div class="van-cell__title van-field__label"><span>邮政编码</span></div>
<div class="van-cell__value">
<div class="van-field__body"><input type="tel" maxlength="6" placeholder="邮政编码" value="10000" class="van-field__control"></div>
</div>
</div>
<div class="van-cell van-cell--center van-switch-cell">
<div class="van-cell__title"><span>设为默认收货地址</span></div>
<div class="van-cell__value">
<div role="switch" aria-checked="true" class="van-switch van-switch--on" style="font-size:24px;">
<div class="van-switch__node"></div>
</div>
</div>
</div>
<div class="van-address-edit__buttons"><button class="van-button van-button--danger van-button--normal van-button--block"><span class="van-button__text">保存</span></button></div>
<div name="van-popup-slide-bottom" class="van-popup van-popup--bottom" style="display:none;">
<div class="van-picker van-area">
<div class="van-hairline--top-bottom van-picker__toolbar">
<div role="button" tabindex="0" class="van-picker__cancel">取消</div>
<div role="button" tabindex="0" class="van-picker__confirm">确认</div>
</div>
<!---->
<div class="van-picker__columns" style="height:220px;">
<div class="van-picker-column">
<ul class="van-picker-column__wrapper" style="transform:translate3d(0, 88px, 0);transition-duration:0ms;transition-property:none;line-height:44px;"></ul>
</div>
<div class="van-picker-column">
<ul class="van-picker-column__wrapper" style="transform:translate3d(0, 88px, 0);transition-duration:0ms;transition-property:none;line-height:44px;"></ul>
</div>
<div class="van-picker-column">
<ul class="van-picker-column__wrapper" style="transform:translate3d(0, 88px, 0);transition-duration:0ms;transition-property:none;line-height:44px;"></ul>
</div>
<div class="van-picker__mask" style="background-size:100% 88px;"></div>
<div class="van-hairline--top-bottom van-picker__frame" style="height:44px;"></div>
</div>
<!---->
</div>
</div>
</div>
`;
+4
View File
@@ -0,0 +1,4 @@
import Demo from '../demo';
import demoTest from '../../../test/demo-test';
demoTest(Demo);
+242
View File
@@ -0,0 +1,242 @@
/* eslint-disable camelcase */
import { renderToString } from '@vue/server-test-utils';
import AddressEdit from '..';
import areaList from '../../area/demo/area.simple';
import { mount, later, transitionStub } from '../../../test/utils';
transitionStub();
const addressInfo = {
name: '测试',
tel: '13000000000',
province: '北京市',
city: '北京市',
county: '朝阳区',
addressDetail: '详细地址',
areaCode: '110101',
postalCode: '10000',
isDefault: true
};
const createComponent = () => {
const wrapper = mount(AddressEdit, {
propsData: {
areaList,
addressInfo,
showPostal: true
}
});
const button = wrapper.find('.van-button');
const field = wrapper.findAll('.van-field__control');
const { errorInfo, data } = wrapper.vm;
return {
vm: wrapper.vm,
data,
field,
button,
wrapper,
errorInfo
};
};
test('create a AddressEdit', () => {
expect(renderToString(AddressEdit)).toMatchSnapshot();
});
test('create a AddressEdit with props', () => {
const wrapper = renderToString(AddressEdit, {
propsData: {
areaList,
addressInfo,
showPostal: true,
showSetDefault: true,
showSearchResult: true
}
});
expect(wrapper).toMatchSnapshot();
});
test('valid name', () => {
const { data, field, button, errorInfo } = createComponent();
// name empty
data.name = '';
button.trigger('click');
expect(errorInfo.name).toBeTruthy();
field.at(0).trigger('focus');
expect(errorInfo.name).toBeFalsy();
});
it('valid tel', () => {
const { data, field, button, errorInfo } = createComponent();
data.tel = '';
button.trigger('click');
expect(errorInfo.tel).toBeTruthy();
field.at(1).trigger('focus');
expect(errorInfo.tel).toBeFalsy();
});
it('valid areaCode', () => {
const { data, button, errorInfo } = createComponent();
// areaCode empty
data.areaCode = '';
button.trigger('click');
expect(errorInfo.areaCode).toBeTruthy();
// areaCode invalid
data.areaCode = '-1';
button.trigger('click');
expect(errorInfo.areaCode).toBeTruthy();
});
it('valid addressDetail', () => {
const { data, field, button, errorInfo } = createComponent();
data.addressDetail = '';
button.trigger('click');
expect(errorInfo.addressDetail).toBeTruthy();
field.at(3).trigger('focus');
expect(errorInfo.addressDetail).toBeFalsy();
});
test('valid postal code', () => {
const { vm, data, field, button, errorInfo } = createComponent();
// postalCode invalid
data.postalCode = '123';
button.trigger('click');
expect(errorInfo.postalCode).toBeTruthy();
field.at(4).trigger('focus');
expect(errorInfo.postalCode).toBeFalsy();
// valid result
data.postalCode = '123456';
button.trigger('click');
// not show postalCode
data.postalCode = '156';
vm.showPostal = false;
button.trigger('click');
expect(errorInfo.postalCode).toBeFalsy();
});
test('on change detail', () => {
const wrapper = mount(AddressEdit);
const field = wrapper.findAll('.van-field__control').at(3);
field.element.value = '123';
field.trigger('input');
expect(wrapper.emitted('change-detail')[0][0]).toEqual('123');
});
test('watch address info', () => {
const wrapper = mount(AddressEdit);
wrapper.setProps({ addressInfo: { name: '123' } });
expect(wrapper.vm.data.name).toEqual('123');
});
test('set/get area code', async () => {
const wrapper = mount(AddressEdit, {
propsData: { areaList }
});
expect(wrapper.vm.getArea()).toEqual([
{ code: '110000', name: '北京市' },
{ code: '110100', name: '北京市' },
{ code: '110101', name: '东城区' }
]);
wrapper.vm.setAreaCode('110102');
await later(50);
expect(wrapper.vm.data.areaCode).toEqual('110102');
expect(wrapper.vm.getArea()).toEqual([
{ code: '110000', name: '北京市' },
{ code: '110100', name: '北京市' },
{ code: '110102', name: '西城区' }
]);
wrapper.vm.$refs = [];
wrapper.vm.setAreaCode('110102');
expect(wrapper.vm.getArea()).toEqual([]);
});
test('watch area code', async () => {
const wrapper = mount(AddressEdit, {
propsData: {
areaList: {},
addressInfo: {
areaCode: '110101'
}
}
});
expect(wrapper.vm.data.city).toEqual('');
wrapper.vm.areaList = areaList;
await later(50);
expect(wrapper.vm.data.city).toEqual('北京市');
});
test('show search result', async () => {
const wrapper = mount(AddressEdit, {
propsData: {
showSearchResult: true,
searchResult: [
{ name: 'name1', address: 'address1' },
{ name: 'name2' },
{ address: 'address2' }
]
}
});
const field = wrapper.findAll('.van-field__control').at(3);
const input = field.element;
field.trigger('focus');
const items = wrapper.findAll('.van-icon-location-o');
items.at(0).element.parentNode.click();
expect(input.value).toEqual('address1 name1');
items.at(1).element.parentNode.click();
expect(input.value).toEqual('name2');
items.at(2).element.parentNode.click();
expect(input.value).toEqual('address2');
field.trigger('blur');
await later(150);
expect(wrapper.vm.detailFocused).toBeFalsy();
});
test('delete address', async () => {
const wrapper = mount(AddressEdit, {
attachToDocument: true,
propsData: {
showDelete: true
}
});
const deleteButton = wrapper.findAll('.van-button').at(1);
deleteButton.trigger('click');
await later();
document.querySelector('.van-dialog__cancel').click();
deleteButton.trigger('click');
document.querySelector('.van-dialog__confirm').click();
await later();
expect(wrapper.emitted('delete')).toBeTruthy();
expect(wrapper.emitted('cancel-delete')).toBeTruthy();
});
test('setAddressDetail method', () => {
const { vm, data } = createComponent();
vm.setAddressDetail('test');
expect(data.addressDetail).toEqual('test');
});
test('select area', () => {
const { wrapper, data } = createComponent();
wrapper.find('.van-picker__confirm').trigger('click');
expect(data.areaCode).toEqual('110101');
});