Búsqueda de sitios web

javascript - node-config Config es `undefined` en el contexto de typescript jest?


Tengo un módulo de TypeScript que funciona en desarrollo y producción. Usa https://github.com/lorenwest/node-config. Estoy intentando importarlo en Jest para escribir pruebas y arroja un error que indica que el objeto config está indefinido.

TypeError: Cannot read property 'get' of undefined
at Object.<anonymous> (src/email/email.service.ts:1877:43)

de

import config from 'config'
console.log('**********CONFIG GET*********', config); // undefined
const sendgridToken: string = config.get('socialApi.value') // throws error

Esperaría que config estuviera definido ya que es la exportación por defecto del módulo de configuración

entorno :

node-config version: [email 
node-version: 12.13.1
tsc -v
Version 3.7.4
[email 

Respuesta #1

en lugar de

import config from 'config'

escribe esto

import * as config from 'config'

Respuesta #2

También puedes habilitar esModuleInterop en tu tsconfig

  "compilerOptions": {
    "esModuleInterop": true,
   }

Por defecto, import config from "config" actúa igual que const config=require("config").default, y config tiene module.exports=... (es decir, no tiene exportación por defecto).

esModuleInterop envuelve module.exports con default.

module.exports = ...
module.exports = { default: module.exports }
// it is pseudo-code

Ver más aquí