diff --git a/packages/testing/src/TestContext.ts b/packages/testing/src/TestContext.ts new file mode 100644 index 00000000000..20c13648bec --- /dev/null +++ b/packages/testing/src/TestContext.ts @@ -0,0 +1,11 @@ +import {InjectorService} from "@tsed/di"; + +export class TestContext { + static injector: InjectorService | null; + static reset() { + if (this.injector) { + this.injector.clear(); + } + this.injector = null; + } +} diff --git a/packages/testing/src/bootstrap.ts b/packages/testing/src/bootstrap.ts index 25f39f16753..11b0dfc72c6 100644 --- a/packages/testing/src/bootstrap.ts +++ b/packages/testing/src/bootstrap.ts @@ -1,4 +1,5 @@ import {$log} from "ts-log-debug"; +import {TestContext} from "./testContext"; /** * Load the server silently without listening port and configure it on test profile. @@ -16,8 +17,8 @@ export function bootstrap(server: any, ...args: any[]) { instance.startServers = () => Promise.resolve(); - // TODO used by inject method - this.$$injector = instance.injector; + // used by inject method + TestContext.injector = instance.injector; instance .start() diff --git a/packages/testing/src/inject.ts b/packages/testing/src/inject.ts index 528f4072843..001f4558bff 100644 --- a/packages/testing/src/inject.ts +++ b/packages/testing/src/inject.ts @@ -1,5 +1,6 @@ import {Done} from "./done"; import {loadInjector} from "./loadInjector"; +import {TestContext} from "./testContext"; /** * The inject function is one of the TsExpressDecorator testing utilities. @@ -16,7 +17,7 @@ import {loadInjector} from "./loadInjector"; */ export function inject(targets: any[], func: Function) { return function before(done: Function) { - const injector = this.$$injector || loadInjector(); + const injector = TestContext.injector || loadInjector(); let isDoneInjected = false; const args = targets.map(target => {