UNPKG

@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
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; } }