UNPKG

@stryker-mutator/core

Version:

The extendable JavaScript mutation testing framework

131 lines 3.59 kB
import sinon from 'sinon'; import { ReplaySubject } from 'rxjs'; export function mock(constructorFn) { return sinon.createStubInstance(constructorFn); } export function createFileSystemMock() { return { copyFile: sinon.stub(), readFile: sinon.stub(), dispose: sinon.stub(), mkdir: sinon.stub(), writeFile: sinon.stub(), readdir: sinon.stub(), }; } /** * Use this factory method to create deep test data * */ function factoryMethod(defaultsFactory) { return (overrides) => Object.assign({}, defaultsFactory(), overrides); } export const createClearTextReporterOptions = factoryMethod(() => ({ allowColor: true, allowEmojis: false, logTests: true, maxTestsToLog: 3, reportTests: true, reportMutants: true, reportScoreTable: true, })); export function createConcurrencyTokenProviderMock() { return { checkerToken$: new ReplaySubject(), testRunnerToken$: new ReplaySubject(), dispose: sinon.stub(), freeCheckers: sinon.stub(), }; } export function createTestRunnerPoolMock() { return { dispose: sinon.stub(), init: sinon.stub(), schedule: sinon.stub(), }; } export function createCheckerPoolMock() { return { dispose: sinon.stub(), init: sinon.stub(), schedule: sinon.stub(), }; } export const logger = () => { return { category: 'foo-category', _log: sinon.stub(), addContext: sinon.stub(), clearContext: sinon.stub(), debug: sinon.stub(), error: sinon.stub(), fatal: sinon.stub(), info: sinon.stub(), isDebugEnabled: sinon.stub(), isErrorEnabled: sinon.stub(), isFatalEnabled: sinon.stub(), isInfoEnabled: sinon.stub(), isLevelEnabled: sinon.stub(), isTraceEnabled: sinon.stub(), isWarnEnabled: sinon.stub(), level: 'level', log: sinon.stub(), mark: sinon.stub(), removeContext: sinon.stub(), setParseCallStackFunction: sinon.stub(), trace: sinon.stub(), warn: sinon.stub(), }; }; export function createCpuInfo(overrides) { return { model: 'x86', speed: 20000, times: { user: 0, nice: 0, sys: 0, idle: 0, irq: 0, }, ...overrides, }; } export function serializeTSConfig(content) { return JSON.stringify(content, null, 2); } export function createDirent(overrides) { const { name, isDirectory } = { name: 'foo', isDirectory: true, ...overrides, }; const dummy = () => true; return { isBlockDevice: dummy, isCharacterDevice: dummy, isDirectory: () => isDirectory, isFIFO: dummy, isFile: () => !isDirectory, isSocket: dummy, isSymbolicLink: dummy, path: 'foo', name, }; } export function createMutant(overrides) { return { fileName: 'foo.js', id: '1', location: { start: { line: 1, column: 2 }, end: { line: 3, column: 3 } }, mutatorName: 'fooMutator', replacement: 'foo', ...overrides, }; } export function loc(startLine, startColumn, endLine, endColumn) { return { start: pos(startLine, startColumn), end: endLine === undefined ? undefined : pos(endLine, endColumn !== null && endColumn !== void 0 ? endColumn : 0) }; } export function pos(line, column) { return { line, column }; } //# sourceMappingURL=producers.js.map