import { faker } from '@faker-js/faker'; import { Logger } from '@squiz/optimization-logger'; import { Container } from 'inversify'; import { buildProviderModule } from 'inversify-binding-decorators'; import { testLogger } from '../jest-global-setup'; import { buildJobRunnerModule } from '../utils'; let iocContainer: Container; function initIocContainer(logger?: Logger): void { const tenant = faker.string.uuid(); const jobRunnerModule = buildJobRunnerModule({ local: true, dynamoTableName: faker.lorem.words(), jobUploadsBucket: faker.lorem.words(), jobDetailsBucket: faker.lorem.words(), awsRegion: faker.lorem.words(), }); // Create a new container tsoa can use iocContainer = new Container({ skipBaseClassChecks: true }); // make inversify aware of inversify-binding-decorators iocContainer.load(buildProviderModule()); iocContainer.load(jobRunnerModule({ tenant, logger: logger || testLogger })); } export { initIocContainer, iocContainer };