Короткая версия:
Я пишу контрольный пример для моего компонента Vue, используя vue-test-utils
и jest
.
Я пытаюсь создать Response
объект в одном из моих тестовых случаев, но я продолжаю получать ошибку ReferenceError: Response is not defined
Длинная версия
Я пытаюсь смоделировать ответ API, когда действие Vuexотправляется с помощью шутки.Я создал действие Vuex, подобное этому
let fakeAccountList = [
{"id":"abcd","title":"Random Account 1"},
{"id":"pqrs","title":"Random Account 2"}
]
actions = {
getAccounts: jest.fn(()=>{
return new Promise((resolve, reject)=>{
resolve(mockResponse(200,'ok',fakeAccountList))
})
})
}
Действие getAccounts
возвращает Обещание, которое преобразуется в список учетных записей.Функция mockResponse
выглядит следующим образом:
mockResponse = (status, statusText, response) => {
return new Response(response, {
status: status,
statusText: statusText,
headers: {
'Content-type': 'application/json'
}
});
};
Когда вызывается mockResponse
, я получаю ошибку ReferenceError: Response is not defined
Я обнаружил эту очень старую проблему: https://github.com/facebook/jest/issues/930 Комментарии предполагают, что это было исправлено, но это не работает для меня.Я не хочу импортировать дополнительные библиотеки, такие как isomorphic-fetch
только для этого.
Вот мой devDependencies
в package.json
:
"devDependencies": {
"@vue/cli-plugin-babel": "3.0.3",
"@vue/cli-plugin-e2e-cypress": "3.0.3",
"@vue/cli-plugin-eslint": "3.0.3",
"@vue/cli-plugin-unit-jest": "3.0.3",
"@vue/cli-service": "3.0.3",
"@vue/test-utils": "1.0.0-beta.25",
"babel-core": "7.0.0-bridge.0",
"babel-jest": "23.6.0",
"less": "3.0.4",
"less-loader": "4.1.0",
"lodash": "4.17.10",
"node-sass": "4.9.2",
"sass-loader": "7.0.3",
"vue-template-compiler": "2.5.16",
}
Любая помощь будет оценена.Заранее спасибо