[英]Jest doesn't recognize awilix container
这是我的代码:
babel.config.cjs
module.exports = {
plugins: ['@babel/plugin-transform-modules-commonjs'],
presets: [['@babel/preset-env', { targets: { node: 'current' } }]]
}
jest.config.cjs
module.exports = {
globals: {
"ts-jest": {
isolatedModules: true,
},
},
};
Setup.ts
import awilix from 'awilix';
import express from 'express';
import CognitoSC from './Service/Cognito.js'
import authController from './Controller/Auth.js';
const app = express();
const container = awilix.createContainer({
injectionMode: awilix.InjectionMode.CLASSIC
});
auth.test.ts
import request from 'supertest';
import app from '../Setup.js';
describe('Testing Authentication/Authorization', function() {
it('responds with json', async function() {
const response = await request(app)
.post('/signin')
.send('username=Test')
.send('password=Testtest123$')
expect(response.status).toEqual(200);
expect(response.body.data.success).toEqual(true);
});
});
我用tsc
("module": "es2022") 构建它。 当我运行npx jest
时,我收到一条错误消息
TypeError: Cannot read properties of undefined (reading 'createContainer')
> 8 | const container = awilix.createContainer({
我注意到的有趣的事情是,如果我打开由tsc
生成的Setup.js
文件并将代码从
import awilix from 'awilix';
至
const awilix = require('awilix');
并运行npx jest
,测试通过没有问题。 我有点迷茫,无法弄清楚问题出在哪里。 我还检查了Setup.js
内部,并且使用 ES6 语法导入 express 没有问题,但为什么它不能用 awilix 做同样的事情?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.