Tengo una biblioteca que construyo y mantengo. Estoy tratando de construir una prueba unitaria particular con él. Cuando construyo una clase alrededor de ClassWeProvide en TypeScript, las pruebas unitarias de Jest funcionan bien.
Estoy tratando de probar una versión JS ya que algunos de los usuarios de mi biblioteca pueden querer usar JavaScript sin formato. My Jest está en TS y MyJSClass está en JS, con la intención de usar una versión "publicada" de mi biblioteca (dist/bundle.js) que está prediseñada como parte de mi canalización. (Yo empaqueto la biblioteca en un paquete).
El problema que veo es que el archivo Jest, require , no puede cargar el archivo JS según la declaración require a continuación. No puedo entender si necesito configurar Jest, o hacer algo completamente diferente, o tal vez esto no sea posible.
La biblioteca y ClassWeProvide están destinados a ejecutarse en NodeJS, no en la interfaz.
En jest.config.js :
module.exports = { testEnvironment: 'node', collectCoverage: false, coveragePathIgnorePatterns: ['dist', 'other', 'directories'], roots: ['<rootDir>'], transform: { '^.+\\.(t|j)s$': 'ts-jest' }, transformIgnorePatterns: ['/node_modules/'], moduleFileExtensions: ['ts', 'js'], watchPathIgnorePatterns: ['node_modules'], moduleNameMapper: { 'my-library': '<rootDir>' } }; En my-class.js :
const { ClassWeProvide } = require('my-library'); module.exports = class MyJSClass extends ClassWeProvide { ... }; En mi MyJSClass.test.ts :
/* eslint-disable @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports */ const MyJSClass = require('../MyJSClass'); describe('My JS Class', () => {...}); SyntaxError: Unexpected token ',' > 1 | const { MyJSClass } = require('my-library');