Files
vant/src/sku/test/index.spec.js
T

88 lines
2.2 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { mount } from '../../../test';
import Sku from '..';
import { getSkuData, initialSku } from '../demo/data';
import { stringToDate, dateToString } from '../utils/time-helper';
const skuData = getSkuData();
test('resetSelectedSku method', () => {
skuData.sku.messages = [];
const wrapper = mount(Sku, {
propsData: {
value: true,
initialSku,
sku: skuData.sku,
quota: skuData.quota,
goods: skuData.goods_info,
goodsId: skuData.goods_id,
quotaUsed: skuData.quota_used,
hideStock: skuData.sku.hide_stock,
startSaleNum: skuData.start_sale_num,
},
});
wrapper.find('.van-button--danger').trigger('click');
expect(wrapper.emitted('buy-clicked').length).toEqual(1);
wrapper.setProps({ initialSku: {} });
wrapper.vm.resetSelectedSku();
wrapper.find('.van-button--danger').trigger('click');
expect(wrapper.emitted('buy-clicked').length).toEqual(1);
});
test('message formatter', () => {
const skuData = getSkuData();
skuData.sku.messages = skuData.sku.messages.filter(
message => message.type === 'tel'
);
const wrapper = mount(Sku, {
propsData: {
value: true,
initialSku,
sku: skuData.sku,
quota: skuData.quota,
goods: skuData.goods_info,
goodsId: skuData.goods_id,
quotaUsed: skuData.quota_used,
hideStock: skuData.sku.hide_stock,
startSaleNum: skuData.start_sale_num,
},
});
const input = wrapper.find('input');
const correctValue = '15000000000';
// \u202c
input.element.value = '15000000000';
input.trigger('input');
expect(input.element.value).toEqual(correctValue);
// \u0020
input.element.value = '150 0000 0000';
input.trigger('input');
expect(input.element.value).toEqual(correctValue);
// /[a-zA-z]/
input.element.value = 'a-zA-z';
input.trigger('input');
expect(input.element.value).toEqual('');
});
test('stringToDate', () => {
expect(dateToString(stringToDate(''))).toEqual('');
expect(dateToString(stringToDate('2020-07-01'))).toEqual('2020-07-01');
expect(dateToString(stringToDate('2020-07-01 22:44'), 'datetime')).toEqual(
'2020-07-01 22:44'
);
expect(dateToString(stringToDate('2020-12-31 23:59'), 'datetime')).toEqual(
'2020-12-31 23:59'
);
});