Commit b35b6fd

mo khan <mo@mokhan.ca>
2016-12-22 18:27:43
resolve more than a single dependency.
1 parent 80e27d0
Changed files (2)
app
infrastructure
app/infrastructure/__tests__/registry_spec.js
@@ -7,6 +7,12 @@ describe("Registry", () => {
       this.item = item;
     }
   }
+  class VeryDependent {
+    constructor(item, dependent) {
+      this.item = item;
+      this.dependent = dependent;
+    }
+  }
 
   let subject = null;
 
@@ -43,9 +49,11 @@ describe("Registry", () => {
       var item = new Item();
       subject.register('item', () => item);
       subject.register('dependent', Dependent);
+      subject.register('veryDependent', VeryDependent);
 
-      let result = subject.resolve('dependent');
-      expect(result).toBeInstanceOf(Dependent);
+      let result = subject.resolve('veryDependent');
+      expect(result).toBeInstanceOf(VeryDependent);
+      expect(result.dependent).toBeInstanceOf(Dependent);
       expect(result.item).toEqual(item);
     })
 
app/infrastructure/registry.js
@@ -23,7 +23,7 @@ export class Resolver {
   }
 
   resolveDependenciesUsing(container) {
-    let parameters = this.parseConstructor(this.factory).slice(2).filter(Boolean);
+    let parameters = this.parseConstructor(this.factory).slice(2)[0].split(',').filter(Boolean);
     let dependencies = parameters.map((parameter) => container.resolve(parameter));
     return new this.factory(...dependencies);
   }