У меня есть следующий компонент:
<template>
<div class="lead-segment">
<div v-html="insuranceType()"></div>
</div>
</template>
<script>
import Vue from 'vue';
export default {
name: 'lead-segment',
props: {
rowData: {
type: Object,
required: true,
},
rowIndex: {
type: [Number, String],
},
},
methods: {
insuranceType() {
const contribution = Vue.filter('currencyFilter')(this.rowData.additionalCustomerInfo.contribution);
return `${this.rowData.leads.insurance_type.name}<br/>${contribution}`;
},
},
};
</script>
И следующий тест, написанный на karma / jasmine с vue-test-utils.
import { createLocalVue, shallowMount } from '@vue/test-utils';
import LeadSegmentComponent from './LeadSegmentComponent';
import { currencyFilter } from '../filters';
describe('LeadSegmentComponent', () => {
const localVue = createLocalVue();
localVue.filter('currencyFilter', currencyFilter);
const wrapper = shallowMount(LeadSegmentComponent, {
localVue,
propsData: {
rowData: {
additionalCustomerInfo: {
contribution: 1,
},
leads: {
insurance_type: {
name: '',
},
},
},
},
});
const vm = wrapper.vm;
it('should be build', () => {
expect(vm)
.toBeDefined();
});
});
Если я выполню тест, яполучаю следующую ошибку:
«message»: «Ошибка afterAll \ nTypeError: __WEBPACK_IMPORTED_MODULE_0_vue ___ default.a.filter (...) не является функцией \ n
Если яудалите фильтр, используемый в компоненте, который проходит тест.
Почему Vue.filter не является функцией, хотя я добавил ее в тест? И как правильно это сделать?
Спасибозаранее