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