UNPKG

1.13 kBPlain TextView Raw
1import { INSTRUMENTER_CONSTANTS } from '@stryker-mutator/api/core';
2import { commonTokens, Injector, PluginContext, tokens } from '@stryker-mutator/api/plugin';
3
4import { MochaAdapter } from './mocha-adapter.js';
5import { MochaOptionsLoader } from './mocha-options-loader.js';
6import { MochaTestRunner } from './mocha-test-runner.js';
7import * as pluginTokens from './plugin-tokens.js';
8
9export const createMochaTestRunner = createMochaTestRunnerFactory();
10
11export 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}