#typescript #mocha.js #chai
Вопрос:
Я создаю свою тестовую платформу API с помощью TypeScript, и я новичок в ней.
Я создал этот вспомогательный файл assertions.ts
import * as chai from 'chai';
interface response {
status: number
body: object
}
const assertResponseStatusCode =
(response:response, statusCode:number) =>
chai.expect(response.status).to.deep.equals(statusCode);
const assertSuccessResponseStatusCode = (response:response) =>
assertResponseStatusCode(response, 201)
export = {assertSuccessResponseStatusCode}
Затем я начал использовать их в своем файле спецификаций, как показано ниже
import * as auth from '../Helpers/auth';
import * as assert from '../Helpers/assertions';
import { user } from '../Samples/user';
describe('login', () => {
it('should return access token with valid credentials', async() => {
const response = await auth.login(user);
console.log(response.body);
assert.assertSuccessResponseStatusCode(response);
});
});
Я получаю эту ошибку, на этот модуль можно ссылаться только с помощью импорта/экспорта ECMAScript, включив флаг «esModuleInterop» и сославшись на его экспорт по умолчанию. для этой строки import * as assert from '../Helpers/assertions';
хотя esModuleInterop
установлено значение true в tsconfig.json
.
Ответ №1:
Это исправлено для меня, когда я изменил инструкцию импорта на import assert from '../Helpers/assertions';
на самом деле, причиной проблемы был знак равенства в экспорте, где я экспортирую один объект export = {assertSuccessResponseStatusCode}
Если изменить на export{assertSuccessResponseStatusCode}
, импорт все будет работать тогда.