Я занимаюсь этим уже 2 часа, но не могу понять, что я делаю неправильно. У меня есть следующий тест jest + puppeteer:
import {convert} from '../__helpers__/number';
const getAmount = async (page) => {
const element = await page.waitForSelector('.my-element');
return element.evaluate((node) => convert(node.innerText));
}
, который очень прост и понятен. Но он продолжает сбой со следующей ошибкой:
Error: Evaluation failed: ReferenceError: _number is not defined
at __puppeteer_evaluation_script__:2:15
at ExecutionContext._evaluateInternal (node_modules/puppeteer/lib/ExecutionContext.js:122:13)
-- ASYNC --
at ExecutionContext.<anonymous> (node_modules/puppeteer/lib/helper.js:111:15)
at ElementHandle.evaluate (node_modules/puppeteer/lib/JSHandle.js:55:42)
at ElementHandle.evaluate (node_modules/puppeteer/lib/helper.js:112:23)
at _callee$ (__tests__/e2e/test.spec.js:13:27)
at tryCatch (node_modules/@babel/polyfill/node_modules/regenerator-runtime/runtime.js:45:40)
at Generator.invoke [as _invoke] (node_modules/@babel/polyfill/node_modules/regenerator-runtime/runtime.js:271:22)
at Generator.prototype.(anonymous function) [as next] (node_modules/@babel/polyfill/node_modules/regenerator-runtime/runtime.js:97:21)
at asyncGeneratorStep (__tests__/e2e/test.spec.js:30:103)
at _next (__tests__/e2e/test.spec.js:32:194)
Приведенный выше номер строки не совпадает с исходным кодом ... и из-за ошибки он выглядел так, как будто он выходит из переданного кода. Поэтому я пошел в местоположение jest-transform-cache
и посмотрел на файл, и номера строк тоже не совпадают; все они выключены на 1. Транспортированный код также имел обновленный вывод и имел следующую строку:
var _number = require('../__helpers__/number');
Я пытался отладить всеми способами, которые мог придумать:
- очищенный кеш
- попытался переименовать файл
- перезапустил систему
- запустил тест в другой системе
- выполнил jest без кеша et c
Также попробовал это:
// import {convert} from '../__helpers__/number';
const convert = (text) => magic(text); // for simplicity's sake
const getAmount = async (page) => {
const element = await page.waitForSelector('.my-element');
return element.evaluate((node) => convert(node.innerText));
}
Теперь это терпит неудачу со следующей ошибкой:
Evaluation failed: ReferenceError: convert is not defined
at __puppeteer_evaluation_script__:2:15
at ExecutionContext._evaluateInternal (node_modules/puppeteer/lib/ExecutionContext.js:122:13)
.
:
Думал, что я бросил бы это здесь, чтобы видеть, столкнулся ли кто-нибудь еще с этим странность. Это не должно провалиться ни по каким нормам, и я не могу понять это вообще. Пожалуйста, помогите мне! Любые идеи / направления будут с благодарностью.
Спасибо!