1 | import { INSTRUMENTER_CONSTANTS } from '@stryker-mutator/api/core';
|
2 | import { commonTokens, Injector, PluginContext, tokens } from '@stryker-mutator/api/plugin';
|
3 | import { DirectoryRequireCache } from '@stryker-mutator/util';
|
4 |
|
5 | import { MochaAdapter } from './mocha-adapter.js';
|
6 | import { MochaOptionsLoader } from './mocha-options-loader.js';
|
7 | import { MochaTestRunner } from './mocha-test-runner.js';
|
8 | import * as pluginTokens from './plugin-tokens.js';
|
9 |
|
10 | export const createMochaTestRunner = createMochaTestRunnerFactory();
|
11 |
|
12 | export function createMochaTestRunnerFactory(
|
13 | namespace: typeof INSTRUMENTER_CONSTANTS.NAMESPACE | '__stryker2__' = INSTRUMENTER_CONSTANTS.NAMESPACE
|
14 | ): {
|
15 | (injector: Injector<PluginContext>): MochaTestRunner;
|
16 | inject: ['$injector'];
|
17 | } {
|
18 | mochaTestRunnerFactory.inject = tokens(commonTokens.injector);
|
19 | function mochaTestRunnerFactory(injector: Injector<PluginContext>): MochaTestRunner {
|
20 | return injector
|
21 | .provideClass(pluginTokens.loader, MochaOptionsLoader)
|
22 | .provideClass(pluginTokens.mochaAdapter, MochaAdapter)
|
23 | .provideClass(pluginTokens.directoryRequireCache, DirectoryRequireCache)
|
24 | .provideValue(pluginTokens.globalNamespace, namespace)
|
25 | .injectClass(MochaTestRunner);
|
26 | }
|
27 | return mochaTestRunnerFactory;
|
28 | }
|