Настройка jest с помощью babel на сервере узлов js - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь проверить конечные точки моего сервера, и я даже не могу запустить тесты из-за ошибки 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в следующем файле, который я импортирую в экспресс-модуль, выдается ошибка (это означает, что проблема связана с экспресс-модулем) - не уверен, почему это происходит,

...