Я смотрел это видео , чтобы узнать, как добавить несколько простых тестов к моим Express маршрутам, но я получаю всевозможные ошибки при выполнении теста. Ошибка:
импорт * как chai из 'chai';
^^^^^^
SyntaxError: Невозможно использовать оператор импорта вне модуля
Я прочитал несколько похожих вопросов о переполнении стека и проблемах GitHub, но я не нашел решения для своего собственного приложения. Наконец, я нашел документацию Mocha на GitHub относительно модулей ES, но она не работала:
Я создал приложение, используя для переноса модуль TypeScript и общий JS, поэтому добавил "test": "env TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha src/test/*.ts"
к сценариям package.json
, но я получаю одну и ту же ошибку каждый раз. Я использую ts-node
в качестве сервера.
В любом случае, это мой tsconfig.json
файл:
{
"compilerOptions": {
"sourceMap": true,
"target": "es6",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src"
},
"exclude": [
"node_modules"
]
}
А это src/test/mi-route.ts
файл:
import * as chai from 'chai';
import * as chaiHttp from 'chai-http';
import server from '../app';
// Assertions
chai.should();
chai.use(chaiHttp);
describe('API Users', () => {
// Test Route GET
describe('GET /api/admin/users', () => {
it('Should return all the users', done => {
chai.request(server)
.get('/api/admin/users')
.end((err, response) => {
response.should.have.status(200);
response.body.should.be.a('object');
done();
});
});
});
});
А это мои package.json
скрипты:
"scripts": {
"dev": "ts-node-dev src/app.ts",
"start": "node dist/app.js",
"test": "env TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha src/test/*.ts",
"build": "tsc -p"
},
Итак ... есть предложения? Стоит ли менять модуль Common JS? Заранее спасибо