import { funcName } from "../../";
TypeError: (0 , common_1.funcName) не является функцией
Это связано с тем, что импорт происходит из index.ts, когда я импортирую его напрямую (из исходного файла), он работает четко, но я не могу изменить каждый файл только для обеспечения функциональности тесты, я думаю, что есть лучшее решение проблем, но я не могу найти ни одного. (Давайте проигнорируем тот факт, что файлы Barrel не очень хороши)
Каждая проблема в stackOverflow Я видел, как люди предлагали использовать Mock для отдельных функций, но это кажется не очень хорошим решением, я не могу тестировать компоненты с помощью пустые функции.
Я пробовал использовать множество конфигураций в шутку, на самом деле у меня есть вот эта:
Код: Выделить всё
testEnvironment: "jsdom",
preset: "ts-jest/presets/default-esm",
injectGlobals: true,
moduleNameMapper: {
"^@/(.*)$": "/src/$1",
"(.*)/index$": ["$1/index.ts", "$1/index.js"],
"\\.(css|less|scss|sass)$": "identity-obj-proxy",
"^lodash-es$": "lodash",
"^lodash-es/(.*)$": "lodash/$1"
},
roots: ["/src"],
modulePaths: ["/src"],
moduleDirectories: ["node_modules", "src"],
"transform": {
"\\.[jt]s?$": ["ts-jest", { useESM: true, isolatedModules: true, diagnostics: false }]
},
transformIgnorePatterns: [
"/node_modules/(?!@testing-library).+\\.js$"
],
extensionsToTreatAsEsm: [".ts", ".tsx"],
setupFilesAfterEnv: ["./jest.setup.ts"],
globals: {
extensionsToTreatAsEsm: [".ts", ".js"],
},
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
};
Подробнее здесь: https://stackoverflow.com/questions/793 ... -with-jest