@stryker-mutator/karma-runner
Version:
A plugin to use the karma test runner in Stryker, the JavaScript mutation testing framework
38 lines (33 loc) • 1.14 kB
text/typescript
import { StrykerOptions } from '@stryker-mutator/api/core';
import {
commonTokens,
Injector,
PluginContext,
tokens,
} from '@stryker-mutator/api/plugin';
import { requireResolve } from '@stryker-mutator/util';
import { KarmaRunnerOptionsWithStrykerOptions } from '../karma-runner-options-with-stryker-options.js';
import { pluginTokens } from '../plugin-tokens.js';
import { AngularProjectStarter } from './angular-starter.js';
import { karmaConfigStarter } from './karma-starter.js';
import { StartedProject } from './started-project.js';
export interface ProjectStarter {
start(): Promise<StartedProject>;
}
createProjectStarter.inject = tokens(
commonTokens.options,
commonTokens.injector,
);
export function createProjectStarter(
options: StrykerOptions,
injector: Injector<PluginContext>,
): ProjectStarter {
const actualOptions = options as KarmaRunnerOptionsWithStrykerOptions;
if (actualOptions.karma.projectType === 'angular-cli') {
return injector
.provideValue(pluginTokens.requireResolve, requireResolve)
.injectClass(AngularProjectStarter);
} else {
return karmaConfigStarter;
}
}