UNPKG

@sigi/di

Version:

Dependencies injection library for sigi framework

30 lines (29 loc) 1.13 kB
import { Injector } from './injector'; import { Type, InjectionToken, Provider, Token } from './type'; export declare class Test<M extends AbstractTestModule> { private readonly TestModule; static createTestingModule<M extends AbstractTestModule>(overrideConfig?: { TestModule?: Type<M>; providers?: Provider[]; }): Test<M>; readonly providersMap: Map<Token<unknown>, Provider>; private constructor(); overrideProvider<T>(token: Token<T>): MockProvider<T, M>; compile(): M; } export declare class MockProvider<T, M extends AbstractTestModule> { private readonly test; private readonly token; constructor(test: Test<M>, token: Type<T> | InjectionToken<T>); useClass(value: Type<T>): Test<M>; useValue(value: T): Test<M>; useFactory(value: (...args: any[]) => any): Test<M>; } export declare abstract class AbstractTestModule { abstract getInstance<T>(provider: Provider<T>): T; } export declare class TestModule implements AbstractTestModule { private readonly injector; constructor(injector: Injector); getInstance<T>(token: Provider<T>): T; }