Jest Test - TypeError: document.createRange не является функцией - PullRequest
0 голосов
/ 09 мая 2020

мой тест

import VueI18n from 'vue-i18n'
import Vuex from "vuex"
import iView from 'view-design'
import {mount,createLocalVue} from '@vue/test-utils'
// @ts-ignore
import FormAccountName from '@/views/forms/FormAccountName/FormAccountName'
const localVue = createLocalVue()
localVue.use(Vuex)
localVue.use(iView)
localVue.use(VueI18n)
describe('a',()=>{
    test('b',async ()=>{
        const wrapper = mount(FormAccountName,{
            localVue,
            mocks: {
                $t: () => 'this is a label',
                formItems: {
                    name: '<a>'
                }
            },
        })
        expect(wrapper).toMatchSnapshot()
    })
})

ошибка

Снимок был сгенерирован нормально, но была получена ошибка

[Vue warn]: Ошибка в nextTick: «TypeError: document.createRange не является функцией»

found in

---> <Tooltip>
       <ErrorTooltipTs>
         <ValidationProvider>
           <FormRow>
             <ValidationObserver>
               <FormWrapper>
                 <FormAccountNameUpdateTs>
                   <Root>

как тег iView, но я инициализировал его. так что я не знаю, что пошло не так. может кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 04 сентября 2020

Добавьте ниже макет кода конфигурации в pollyfill. js или testSetup

global.document.createRange = () => ({
        setStart: () => {},
        setEnd: () => {},
        commonAncestorContainer: {
            nodeName: 'BODY',
            ownerDocument: document
        },
        createContextualFragment: jest.fn
    });
0 голосов
/ 09 мая 2020
document.createRange = () => ({
    setStart: () => {},
    setEnd: () => {},
    //@ts-ignore
    commonAncestorContainer: {
      nodeName: "BODY",
      ownerDocument: document,
    },
  })
...