nestjs typeorm Test.createTestingModule ConnectionNotFoundError: Connection "default" was not found. .spec.ts Ошибка

В тесте для сервиса, использующего TypeOrm получаем:

ConnectionNotFoundError: Connection "default" was not found.

Суть проблемы в нашем случае кратко:
в конструкторе сервиса явно вызывался метод getManager():

this.entityManager = getManager();

В качестве решения перешли на использование декоратора @InjectEntityManager(). Подробности далее.

Как было

Ошибка была когда был такой код сервиса:

@Injectable()
export class SomeService {
  @InjectRepository(SomeRepository)
  private someRepository: SomeRepository;
  private entityManager: EntityManager;

  constructor() {
    this.entityManager = getManager();
  }

И такой код теста:

describe('SomeService', () => {
  let service: SomeService;

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      providers: [SomeService, SomeRepository],
    }).compile();

    service = module.get<SomeService>(SomeService);
  });

  it('should be defined', () => {
    expect(service).toBeDefined();
  });
});

Возможное решение

Стало работать, когда код сервиса переписали на использование декоратора для медежера сущностей:

  @Injectable()
  export class SomeService {
    @InjectRepository(SomeRepository)
    private someRepository: SomeRepository;
  
    constructor(
      @InjectEntityManager()
      private entityManager: EntityManager,
    ) {}

И код теста для него:

describe('SomeService', () => {
  let service: SomeService;

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      providers: [
        SomeService,
        { provide:SomeRepository, useValue: {} },
        { provide: EntityManager, useValue: {} },
      ],
    }).compile();

    service = module.get<SomeService>(SomeService);
  });

  it('should be defined', () => {
    expect(service).toBeDefined();
  });
});

Источник идеи: Идея отсюда: https://stackoverflow.com/a/67536457 там же возможный пример мока, который позволяет пойти другим путем, не использовать декоратор, а мокнуть сам метод получения менеджера:

const deleteMock = jest.fn();
jest.mock('typeorm', () => ({
  getManager: () => ({
    delete: deleteMock,
  })
}))

Key Words for FKN + antitotal forum (CS VSU):