import type { INestApplication } from '@nestjs/common';
import type { TestingModule, TestingModuleBuilder } from '@nestjs/testing';

type TestingApp = {
  app: INestApplication;
  moduleRef: TestingModule;
};

export async function createTestingApp(
  builder: TestingModuleBuilder,
): Promise<TestingApp> {
  const moduleRef = await builder.compile();
  const app = moduleRef.createNestApplication();
  await app.init();
  return { app, moduleRef };
}
