50 lines
1.7 KiB
Plaintext
50 lines
1.7 KiB
Plaintext
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const tslib_1 = require("tslib");
|
|
const vitest_1 = require("vitest");
|
|
const __1 = require("../..");
|
|
(0, vitest_1.describe)('Issue 1416', () => {
|
|
(0, vitest_1.it)('should allow providing default values on optional bindings', async () => {
|
|
let Test1 = class Test1 {
|
|
onDestroyMock = vitest_1.vitest.fn();
|
|
destroy() {
|
|
this.onDestroyMock();
|
|
}
|
|
};
|
|
tslib_1.__decorate([
|
|
(0, __1.preDestroy)(),
|
|
tslib_1.__metadata("design:type", Function),
|
|
tslib_1.__metadata("design:paramtypes", []),
|
|
tslib_1.__metadata("design:returntype", void 0)
|
|
], Test1.prototype, "destroy", null);
|
|
Test1 = tslib_1.__decorate([
|
|
(0, __1.injectable)()
|
|
], Test1);
|
|
let Test2 = class Test2 {
|
|
destroy() { }
|
|
};
|
|
Test2 = tslib_1.__decorate([
|
|
(0, __1.injectable)()
|
|
], Test2);
|
|
let Test3 = class Test3 {
|
|
destroy() { }
|
|
};
|
|
Test3 = tslib_1.__decorate([
|
|
(0, __1.injectable)()
|
|
], Test3);
|
|
const container = new __1.Container({ defaultScope: 'Singleton' });
|
|
container.bind(Test1).toSelf();
|
|
container.bind(Test2).toService(Test1);
|
|
container.bind(Test3).toService(Test1);
|
|
const test1 = container.get(Test1);
|
|
container.get(Test2);
|
|
container.get(Test3);
|
|
await Promise.all([
|
|
container.unbind(Test1),
|
|
container.unbind(Test2),
|
|
container.unbind(Test3),
|
|
]);
|
|
(0, vitest_1.expect)(test1.onDestroyMock).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|
|
//# sourceMappingURL=issue_1416.test.js.map |