UNPKG

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