• passes: 12
  • failures: 0
  • duration: 26ms
  • Dependency Injection

    • should register dependency3ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              class Sample {
              }
              assume(injects_1.exists('Sample')).to.be.false;
              // When
              injects_1.Injectable(Sample);
              // Then
              chai_1.expect(injects_1.exists('Sample')).to.be.true;
          })
    • should inject dependency1ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              class Sample {
              }
              assume(injects_1.exists('Sample')).to.be.false;
              injects_1.Injectable(Sample);
              assume(injects_1.exists('Sample')).to.be.true;
              // When
              const sample = injects_1.inject(Sample);
              // Then
              chai_1.expect(sample).to.be.an.instanceOf(Sample);
          })
    • should inject class dependency0ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              class Sample {
              }
              assume(injects_1.exists('Sample')).to.be.false;
              // When
              const sample = injects_1.inject(Sample);
              // Then
              chai_1.expect(sample).to.not.be.null;
              true;
          })
    • should inject custom object instance0ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              assume(injects_1.exists('sample')).to.be.false;
              class Sample {
                  constructor(value) {
                      this.value = value;
                  }
              }
              const sampleValue = 'testSampleValue';
              injects_1.Injectable('sample', new Sample(sampleValue));
              assume(injects_1.exists('sample')).to.be.true;
              // When
              const sample = injects_1.inject('sample');
              // Then
              chai_1.expect(sample.value).to.eql(sampleValue);
          })
    • should inject custom class instance0ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              assume(injects_1.exists('Sample')).to.be.false;
              class Sample {
                  constructor(value) {
                      this.value = value;
                  }
              }
              const sampleValue = 'testSampleValue';
              injects_1.Injectable(Sample, new Sample(sampleValue));
              assume(injects_1.exists('Sample')).to.be.true;
              // When
              const sample = injects_1.inject(Sample);
              // Then
              chai_1.expect(sample.value).to.eql(sampleValue);
          })
    • should throw assert exception when creating Injectable with custom string key but without instance14ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              assume(injects_1.exists('sample')).to.be.false;
              let assertionError = false;
              try {
                  // When
                  injects_1.Injectable('sample');
              }
              catch (e) {
                  assertionError = true;
              }
              // Then
              chai_1.expect(assertionError).to.be.true;
          })
    • should inject string1ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              assume(injects_1.exists('sample')).to.be.false;
              const sampleValue = 'testSample';
              injects_1.Injectable('sample', sampleValue);
              assume(injects_1.exists('sample')).to.be.true;
              // When
              const sample = injects_1.inject('sample');
              // Then
              chai_1.expect(sample).to.eql(sampleValue);
              chai_1.expect(sample).to.be.a('string');
          })
    • should inject number0ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              assume(injects_1.exists('sample')).to.be.false;
              const sampleValue = 1;
              injects_1.Injectable('sample', sampleValue);
              assume(injects_1.exists('sample')).to.be.true;
              // When
              const sample = injects_1.inject('sample');
              // Then
              chai_1.expect(sample).to.eql(sampleValue);
              chai_1.expect(sample).to.be.a('number');
          })
    • should register @Injectable1ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              assume(injects_1.exists('Sample')).to.be.false;
              // When
              let Sample = class Sample {
              };
              Sample = __decorate([
                  injects_1.Injectable
              ], Sample);
              // Then
              chai_1.expect(injects_1.exists('Sample')).to.be.true;
          })
    • should inject in cascade0ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              let One = class One {
              };
              One = __decorate([
                  injects_1.Injectable
              ], One);
              let Two = class Two {
                  constructor() { this.one = injects_1.inject(One); }
              };
              Two = __decorate([
                  injects_1.Injectable
              ], Two);
              let Three = class Three {
                  constructor() { this.two = injects_1.inject(Two); }
              };
              Three = __decorate([
                  injects_1.Injectable
              ], Three);
              // When
              const three = injects_1.inject(Three);
              // Then
              chai_1.expect(three).to.be.an.instanceOf(Three);
              chai_1.expect(three.two).to.be.an.instanceOf(Two);
              chai_1.expect(three.two.one).to.be.an.instanceOf(One);
          })
    • should reset injectables0ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              assume(injects_1.exists('Sample')).to.be.false;
              assume(injects_1.exists('Sample')).to.be.false;
              class Sample {
              }
              class Sample2 {
              }
              injects_1.Injectable(Sample);
              injects_1.Injectable(Sample2);
              chai_1.expect(injects_1.exists('Sample')).to.be.true;
              chai_1.expect(injects_1.exists('Sample2')).to.be.true;
              // When
              injects_1.resetInjectables();
              // Then
              chai_1.expect(injects_1.exists('Sample')).to.be.false;
              chai_1.expect(injects_1.exists('Sample2')).to.be.false;
          })
    • should reset injectable1ms

      __awaiter(this, void 0, void 0, function* () {
              // Given
              assume(injects_1.exists('Sample')).to.be.false;
              assume(injects_1.exists('Sample')).to.be.false;
              class Sample {
              }
              class Sample2 {
              }
              injects_1.Injectable(Sample);
              injects_1.Injectable(Sample2);
              chai_1.expect(injects_1.exists('Sample')).to.be.true;
              chai_1.expect(injects_1.exists('Sample2')).to.be.true;
              // When
              injects_1.resetInjectable('Sample');
              // Then
              chai_1.expect(injects_1.exists('Sample')).to.be.false;
              chai_1.expect(injects_1.exists('Sample2')).to.be.true;
          })