Некоторые импортные пакеты переименовываются при использовании babel-jest - PullRequest
0 голосов
/ 27 февраля 2020

Этот фрагмент сокращенного кода отвечает за вызов службы SOAP и анализ результатов. Он отлично работает в производстве; однако в интеграционном тесте выдается ошибка:

import soap     from 'soap'
import xml2js   from 'xml2js'

const parser = new xml2js.Parser

export default async () => (
    new Promise(async (resolve, reject) => {
        soap.createClient('https://url.com/soap/extract?wsdl', (async (err, client) => {
            if(err) reject(err)

            try {
                //call service, parse results, etc

                resolve(parsedResult)
            } catch(e) {
                reject(e)
            }
        }))
    })
)

После отладки я обнаружил, что soap переименовывается в _soap, что приводит к сбою строки soap.createClient. Почему этот модуль переименовывается и что я могу сделать, чтобы исправить это?

Соответствующие части из моего package.json приведены ниже.

"babel": {
    "env": {
      "test": {
        "presets": [
          [
            "@babel/preset-env",
            {
              "modules": false,
              "targets": {
                "node": "current"
              }
            }
          ]
        ],
        "plugins": [
          [
            "@babel/plugin-transform-modules-commonjs",
            {
              "spec": true
            }
          ]
        ]
      }
    }
  },
  "jest": {
    "transform": {
      "^.+\\.mjs$": "babel-jest"
    },
    "moduleFileExtensions": [
      "mjs",
      "js"
    ],
    "collectCoverage": true,
    "collectCoverageFrom": [
      "src/**/*.mjs",
      "!src/worker-controller.mjs",
      "!src/utilities/db.mjs",
      "!src/utilities/logger.mjs"
    ]
  }

Узел: 12.14.1

Jest: 24.9.0

@ babel / plugin-transform-modules-common js: 7.7.5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...