@difizen/mana-syringe
Version:
40 lines (34 loc) • 998 B
text/typescript
import assert from 'assert';
import { register, GlobalContainer } from './container';
import { singleton } from './decorator';
import { registerSideOption } from './side-option';
describe('side option', () => {
it('#side register', () => {
const side = (target: any) => {
registerSideOption({ token: 'side', useValue: true }, target);
};
()
class Foo {}
register(Foo);
const foo = GlobalContainer.get(Foo);
const sideValue = GlobalContainer.get<boolean>('side');
assert(foo instanceof Foo && sideValue === true);
});
it('#class extend side option', () => {
const side = (name: string) => {
return (target: any) => {
Reflect.defineMetadata('name', name, target);
};
};
('Foo')
()
class Foo {}
register(Foo);
('FooBar')
()
class FooBar extends Foo {}
register(FooBar);
assert(Reflect.getMetadata('name', FooBar) === 'FooBar');
});
});