diff --git a/test/decorators/Service.spec.ts b/test/decorators/Service.spec.ts index a6f188f2..32ff17fe 100644 --- a/test/decorators/Service.spec.ts +++ b/test/decorators/Service.spec.ts @@ -188,4 +188,19 @@ describe('Service Decorator', function () { expect(Container.get('my-service-A')).toBe('TEST_STRING'); expect(Container.get('my-service-B')).toBe('TEST_STRING'); }); + + it('should support factory functions', function () { + class Engine { + public serialNumber = 'A-123'; + } + + @Service({ + factory: () => new Car(new Engine()), + }) + class Car { + constructor(public engine: Engine) {} + } + + expect(Container.get(Car).engine.serialNumber).toBe('A-123'); + }); });