Я пытаюсь проверить конечные точки моего сервера, и я даже не могу запустить тесты из-за ошибки Babel (или это то, что мне кажется)
У меня есть эта конфигурация:
babel.config.js:
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
};
package.json:
{
"name": "my awesome server",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"start": "babel-node src/server.js",
"dev": "nodemon --exec babel-node src/server.js",
"test": "jest"
},
"author": "",
"license": "ISC",
"dependencies": {
"@truffle/hdwallet-provider": "^1.0.22",
"app-module-path": "^2.2.0",
"dotenv": "^8.0.0",
"express": "^4.16.4",
"morgan": "^1.9.1",
"web3": "^1.2.2"
},
"devDependencies": {
"@babel/core": "^7.6.4",
"@babel/node": "^7.2.2",
"@babel/preset-env": "^7.6.3",
"jest": "^24.9.0",
"nodemon": "^1.19.0",
"supertest": "^4.0.2"
}
}
тестовый файл:
import app from '../src/app';
import request from 'supertest';
const getAddressTest = async () => {
const response = await request(app)
.get('/address')
expect(response.body.status).toBe(200)
}
const addressEnpoint = test("Address test", getAddressTest)
describe("Check address", () => addressEnpoint)
основной файл моего приложения:
import express from "express";
import morgan from "morgan";
import dotenv from "dotenv";
import { routes } from "api/routes";
dotenv.config();
const app = express();
const requestHeaders = (_, response, next) => {
response.header("Access-Control-Allow-Origin", "*");
next()
};
const appUse = (a, b) => (b ? app.use(a, b) : app.use(a));
const toUse = [ morgan("combined"), requestHeaders, ...routes ];
toUse.forEach(object => appUse(object));
export default app;
Когда я запускаю npm start, все идет хорошо, но когда я запускаю npm run test, я получаю следующую ошибку:
> jest
FAIL tests/address.test.js
● Test suite failed to run
TypeError: methods.forEach is not a function
> 1 | import express from "express";
| ^
2 | import morgan from "morgan";
3 | import dotenv from "dotenv";
Я хотел бы знать, что мне не хватаетздесь - я пробовал ВСЕ, что я нашел в Google за последние пару дней, но я не достиг этого
Примечание: если я изменю строку, один из основных файлов приложения будет использовать require вместо importв следующем файле, который я импортирую в экспресс-модуль, выдается ошибка (это означает, что проблема связана с экспресс-модулем) - не уверен, почему это происходит,