У меня есть приложение на Nest JS в Typescript с использованием TypeORM и модульных тестов, написанных с помощью Jest. У меня есть функция, которая использует такие транзакции:
async createMany(users: User[]) {
await this.connection.transaction(async manager => {
await manager.save(users[0]);
await manager.save(users[1]);
});
}
Это пример из Nest JS docs. Я делаю это примерно таким же образом через this.connection.transaction
, но бизнес-лог c другой.
Дело в том, что я хочу сделать модульный тест для проверки этой служебной функции. Поэтому мне нужно как-то издеваться над this.connection
и его manager
. Или хотя бы менеджер. Я не знаю, как это сделать с помощью Jest. Я не могу создать менеджера без подключения. Я не могу создать фиктивное соединение без менеджера, чтобы вернуться в него.
Использование как TypeORM, так и Jest является стандартным для Nest JS. Должен быть способ писать модульные тесты с транзакциями. Но я не уверен, как это сделать.
Обратите внимание, что я спрашиваю о модульном тестировании, имитирующем ORM. Не интеграционные тесты, которые будут напрямую использовать тестовый экземпляр базы данных.