vue.js - 存根电话输入 jest vue JS
问题描述
我正在尝试对我在我的一个 Vue 组件中使用的 tel 输入插件进行存根。
这是我尝试过的,我想我几乎得到了它,但我错过了一个小细节。
这是我的规格文件:
import { mount, createLocalVue } from '@vue/test-utils';
import ModalNewCustomer from "../../../resources/js/subviews/customers/components/ModalNewCustomer";
// Stubs
const telInput = {
template: `<input type="tel">`
}
import moment from 'moment';
describe('Modal New Customer',() => {
let wrapper,mockCheckNameDuplicate;
let districts = [
{"id":1,"name":"Aberdeen"},
{"id":2,"name":"Admiralty"},
{"id":3,"name":"Ap Lei Chau"},
{"id":4,"name":"Beacon Hill"},
{"id":5,"name":"Braemar Hill"},
{"id":6,"name":"Causeway Bay"},
{"id":8,"name":"Central"}
];
let newCustomerData ={
firstName: 'Loulou',
lastName: 'Le Loup',
emailAddress: 'email@google.com',
sex: 'M',
primaryPhoneNumber: '+85200001111',
secondaryPhoneNumber: '+85233334444',
birthday: "2020-11-30",
wayOfContact: 'email',
electroOrNot: 1,
asiaMilesMembership: '00001111'
};
beforeEach(() => {
mockCheckNameDuplicate = jest.spyOn(ModalNewCustomer.methods, 'checkNameDuplicate');
wrapper = mount(ModalNewCustomer,{
localVue,
propsData:{
districts: districts
},
data(){
return{
COMPANY_NAME: 'HK'
}
},
router,
stubs:{
"vue-tel-input": telInput
}
});
flushPromises();
jest.resetModules();
jest.clearAllMocks();
});
afterEach(() => {
flushPromises();
jest.resetModules();
jest.clearAllMocks();
})
it('can input new customer data and submit it',async() => {
const {vm} = wrapper;
let primaryPhoneNumberInput = wrapper.find('#primaryPhoneNumber');
await primaryPhoneNumberInput.setValue(newCustomerData.primaryPhoneNumber)
expect(primaryPhoneNumberInput.element.value).toBe(newCustomerData.primaryPhoneNumber);
console.log(primaryPhoneNumberInput.html())
console.log(vm.newCustomer.primaryPhoneNumber)
});
});
在我的 vue 组件中,vue tel 输入如下所示:
<vue-tel-input
id="primaryPhoneNumber"
:default-country="COMPANY_NAME"
validCharactersOnly
v-model="newCustomer.primaryPhoneNumber"
:inputOptions="inputOptions">
</vue-tel-input>
问题是当我设置我的存根组件的值时,我正在测试的 Vue 组件的数据没有被更新,由于 v-model 应该重新渲染它。
谢谢你的帮助。
解决方案
推荐阅读
- c# - 如何 Linq 平均
- php - 如何通过函数将自定义类添加到 woocommerce 购物车缩略图标签?
- angular - 推送记录到课堂
- powershell - 尝试在 Jupyterlabs 中使用多行字符串运行 powershell 脚本时遇到错误
- typescript - 使用泛型扩展 Type1 或 Type2
- javascript - 无法读取未定义的属性“发送”(Discord.js)
- python - 与普通的基于函数的视图相比,ListView 的优缺点是什么,反之亦然?(姜戈)
- python - 创建一个列,它是熊猫数据框中多列的平均值
- css - Vuejs - 添加三分之一后,Svgs 部分丢失
- raku - 如何从函数传递指向容器的指针?