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;
})