Best JavaScript code snippet using stryker-parent
broadcast-reporter.spec.ts
Source:broadcast-reporter.spec.ts
1import { PluginKind } from '@stryker-mutator/api/plugin';2import { Reporter } from '@stryker-mutator/api/report';3import { factory, testInjector } from '@stryker-mutator/test-helpers';4import { expect } from 'chai';5import sinon from 'sinon';6import { coreTokens, PluginCreator } from '../../../src/di/index.js';7import { BroadcastReporter } from '../../../src/reporters/broadcast-reporter.js';8describe(BroadcastReporter.name, () => {9 let sut: BroadcastReporter;10 let rep1: sinon.SinonStubbedInstance<Required<Reporter>>;11 let rep2: sinon.SinonStubbedInstance<Required<Reporter>>;12 let isTTY: boolean;13 let pluginCreatorMock: sinon.SinonStubbedInstance<PluginCreator>;14 beforeEach(() => {15 captureTTY();16 testInjector.options.reporters = ['rep1', 'rep2'];17 rep1 = factory.reporter('rep1');18 rep2 = factory.reporter('rep2');19 pluginCreatorMock = sinon.createStubInstance(PluginCreator);20 pluginCreatorMock.create.withArgs(PluginKind.Reporter, 'rep1').returns(rep1).withArgs(PluginKind.Reporter, 'rep2').returns(rep2);21 });22 afterEach(() => {23 restoreTTY();24 });25 describe('when constructed', () => {26 it('should create "progress-append-only" instead of "progress" reporter if process.stdout is not a tty', () => {27 // Arrange28 setTTY(false);29 const expectedReporter = factory.reporter('progress-append-only');30 testInjector.options.reporters = ['progress'];31 pluginCreatorMock.create.returns(expectedReporter);32 // Act33 sut = createSut();34 // Assert35 expect(sut.reporters).deep.eq({ 'progress-append-only': expectedReporter });36 sinon.assert.calledWith(pluginCreatorMock.create, PluginKind.Reporter, 'progress-append-only');37 });38 it('should create the correct reporters', () => {39 // Arrange40 setTTY(true);41 testInjector.options.reporters = ['progress', 'rep2'];42 const progress = factory.reporter('progress');43 pluginCreatorMock.create.withArgs(PluginKind.Reporter, 'progress').returns(progress);44 // Act45 sut = createSut();46 // Assert47 expect(sut.reporters).deep.eq({48 progress,49 rep2,50 });51 });52 it('should warn if there is no reporter', () => {53 testInjector.options.reporters = [];54 sut = createSut();55 expect(testInjector.logger.warn).calledWith(sinon.match('No reporter configured'));56 });57 });58 describe('with 2 reporters', () => {59 beforeEach(() => {60 sut = createSut();61 });62 it('should forward "onDryRunCompleted"', async () => {63 await actAssertShouldForward('onDryRunCompleted', factory.dryRunCompletedEvent());64 });65 it('should forward "onMutationTestingPlanReady"', async () => {66 await actAssertShouldForward('onMutationTestingPlanReady', factory.mutationTestingPlanReadyEvent());67 });68 it('should forward "onMutantTested"', async () => {69 await actAssertShouldForward('onMutantTested', factory.mutantResult());70 });71 it('should forward "onAllMutantsTested"', async () => {72 await actAssertShouldForward('onAllMutantsTested', [factory.mutantResult()]);73 });74 it('should forward "onMutationTestReportReady"', async () => {75 await actAssertShouldForward(76 'onMutationTestReportReady',77 factory.mutationTestReportSchemaMutationTestResult(),78 factory.mutationTestMetricsResult()79 );80 });81 it('should forward "wrapUp"', async () => {82 await actAssertShouldForward('wrapUp');83 });84 describe('when "wrapUp" returns promises', () => {85 let wrapUpResolveFn: (value?: PromiseLike<void> | void) => void;86 let wrapUpResolveFn2: (value?: PromiseLike<void> | void) => void;87 let wrapUpRejectFn: (reason?: any) => void;88 let result: Promise<void>;89 let isResolved: boolean;90 beforeEach(() => {91 isResolved = false;92 rep1.wrapUp.returns(93 new Promise<void>((resolve, reject) => {94 wrapUpResolveFn = resolve;95 wrapUpRejectFn = reject;96 })97 );98 rep2.wrapUp.returns(new Promise<void>((resolve) => (wrapUpResolveFn2 = resolve)));99 result = sut.wrapUp().then(() => void (isResolved = true));100 });101 it('should forward a combined promise', () => {102 expect(isResolved).to.be.eq(false);103 wrapUpResolveFn();104 wrapUpResolveFn2();105 return result;106 });107 describe('and one of the promises results in a rejection', () => {108 let actualError: Error;109 beforeEach(() => {110 actualError = new Error('some error');111 wrapUpRejectFn(actualError);112 wrapUpResolveFn2();113 return result;114 });115 it('should not result in a rejection', () => result);116 it('should log the error', () => {117 expect(testInjector.logger.error).calledWith("An error occurred during 'wrapUp' on reporter 'rep1'.", actualError);118 });119 });120 });121 describe('with one faulty reporter', () => {122 let actualError: Error;123 beforeEach(() => {124 actualError = new Error('some error');125 factory.ALL_REPORTER_EVENTS.forEach((eventName) => rep1[eventName].throws(actualError));126 });127 it('should still broadcast "onDryRunCompleted"', async () => {128 await actAssertShouldForward('onDryRunCompleted', factory.dryRunCompletedEvent());129 });130 it('should still broadcast "onMutationTestingPlanReady"', async () => {131 await actAssertShouldForward('onMutationTestingPlanReady', factory.mutationTestingPlanReadyEvent());132 });133 it('should still broadcast "onMutantTested"', async () => {134 await actAssertShouldForward('onMutantTested', factory.mutantResult());135 });136 it('should still broadcast "onAllMutantsTested"', async () => {137 await actAssertShouldForward('onAllMutantsTested', [factory.mutantResult()]);138 });139 it('should still broadcast "onMutationTestReportReady"', async () => {140 await actAssertShouldForward(141 'onMutationTestReportReady',142 factory.mutationTestReportSchemaMutationTestResult(),143 factory.mutationTestMetricsResult()144 );145 });146 it('should still broadcast "wrapUp"', async () => {147 await actAssertShouldForward('wrapUp');148 });149 it('should log each error', () => {150 factory.ALL_REPORTER_EVENTS.forEach((eventName) => {151 (sut as any)[eventName]();152 expect(testInjector.logger.error).to.have.been.calledWith(`An error occurred during '${eventName}' on reporter 'rep1'.`, actualError);153 });154 });155 });156 });157 function createSut() {158 return testInjector.injector.provideValue(coreTokens.pluginCreator, pluginCreatorMock).injectClass(BroadcastReporter);159 }160 function captureTTY() {161 isTTY = process.stdout.isTTY;162 }163 function restoreTTY() {164 process.stdout.isTTY = isTTY;165 }166 function setTTY(val: boolean) {167 process.stdout.isTTY = val;168 }169 async function actAssertShouldForward<TMethod extends keyof Reporter>(method: TMethod, ...input: Parameters<Required<Reporter>[TMethod]>) {170 await (sut[method] as (...args: Parameters<Required<Reporter>[TMethod]>) => Promise<void> | void)(...input);171 expect(rep1[method]).calledWithExactly(...input);172 expect(rep2[method]).calledWithExactly(...input);173 }...
progress-reporter.ts
Source:progress-reporter.ts
...3import { progressBarWrapper } from './progress-bar.js';4import { ProgressKeeper } from './progress-keeper.js';5export class ProgressBarReporter extends ProgressKeeper {6 private progressBar?: ProgressBar;7 public onMutationTestingPlanReady(event: MutationTestingPlanReadyEvent): void {8 super.onMutationTestingPlanReady(event);9 const progressBarContent =10 'Mutation testing [:bar] :percent (elapsed: :et, remaining: :etc) :tested/:mutants Mutants tested (:survived survived, :timedOut timed out)';11 this.progressBar = new progressBarWrapper.ProgressBar(progressBarContent, {12 complete: '=',13 incomplete: ' ',14 stream: process.stdout,15 total: this.progress.total,16 width: 50,17 });18 }19 public onMutantTested(result: MutantResult): number {20 const ticks = super.onMutantTested(result);21 const progressBarContent = { ...this.progress, et: this.getElapsedTime(), etc: this.getEtc() };22 if (ticks) {...
progress-append-only-reporter.ts
Source:progress-append-only-reporter.ts
2import { MutationTestingPlanReadyEvent } from '@stryker-mutator/api/src/report';3import { ProgressKeeper } from './progress-keeper.js';4export class ProgressAppendOnlyReporter extends ProgressKeeper {5 private intervalReference?: NodeJS.Timer;6 public onMutationTestingPlanReady(event: MutationTestingPlanReadyEvent): void {7 super.onMutationTestingPlanReady(event);8 if (event.mutantPlans.length) {9 this.intervalReference = setInterval(() => this.render(), 10000);10 }11 }12 public onAllMutantsTested(): void {13 if (this.intervalReference) {14 clearInterval(this.intervalReference);15 }16 }17 private render() {18 process.stdout.write(19 `Mutation testing ${this.getPercentDone()} (elapsed: ${this.getElapsedTime()}, remaining: ${this.getEtc()}) ` +20 `${this.progress.tested}/${this.progress.mutants} tested (${this.progress.survived} survived, ${this.progress.timedOut} timed out)` +21 os.EOL...
Using AI Code Generation
1const Stryker = require('stryker-parent');2const Stryker = require('stryker');3const Stryker = require('stryker-api');4const Stryker = require('stryker-parent').default;5const Stryker = require('stryker').default;6const Stryker = require('stryker-api').default;7const Stryker = require('stryker-parent').Stryker;8const Stryker = require('stryker').Stryker;9const Stryker = require('stryker-api').Stryker;10const Stryker = require('stryker-parent').Stryker.default;11const Stryker = require('stryker').Stryker.default;12const Stryker = require('stryker-api').Stryker.default;13const Stryker = require('stryker-parent').Stryker.Stryker;14const Stryker = require('stryker').Stryker.Stryker;15const Stryker = require('stryker-api').Stryker.Stryker;16const Stryker = require('stryker-parent').default.default;
Using AI Code Generation
1const { onMutationTestingPlanReady } = require('stryker-parent');2const { StrykerOptions } = require('@stryker-mutator/api/core');3const options = new StrykerOptions();4options.set({ logLevel: 'trace' });5onMutationTestingPlanReady(options, plan => {6});7module.exports = function(config) {8 config.set({9 mochaOptions: {10 }11 });12};13{14 "scripts": {15 },16 "devDependencies": {17 }18}19const { onMutationTestingPlanReady } = require('stryker-parent');20const { StrykerOptions } = require('@stryker-mutator/api/core');21const options = new StrykerOptions();22options.set({ logLevel: 'trace' });23onMutationTestingPlanReady(options, plan => {24});25module.exports = function(config) {26 config.set({
Using AI Code Generation
1const stryker = require('stryker');2const path = require('path');3const config = {4 karma: {5 },6};7stryker.runMutationTest(config).then(() => {8 console.log('Done!');9});10module.exports = function (config) {11 config.set({12 karma: {13 },14 });15};16const strykerKarmaConf = require('stryker-karma-runner/config/karma.conf');17module.exports = function (config) {18 strykerKarmaConf(config);19 config.set({20 require('karma-jasmine'),21 require('karma-chrome-launcher'),22 require('karma-coverage-istanbul-reporter'),23 require('karma-jasmine-html-reporter'),24 require('karma-phantomjs-launcher'),25 require('@angular/cli/plugins/karma')26 client: {27 },28 coverageIstanbulReporter: {29 },30 angularCli: {31 },
Using AI Code Generation
1const onMutationTestingPlanReady = require('stryker-parent').onMutationTestingPlanReady;2onMutationTestingPlanReady(function (mutationTestingPlan) {3});4const onMutationTestReportReady = require('stryker-parent').onMutationTestReportReady;5onMutationTestReportReady(function (mutationTestReport) {6});7const onAllMutantsTested = require('stryker-parent').onAllMutantsTested;8onAllMutantsTested(function (mutationTestResult) {9});10const onScoreCalculated = require('stryker-parent').onScoreCalculated;11onScoreCalculated(function (score) {12});13const onAllMutantsTested = require('stryker-parent').onAllMutantsTested;14onAllMutantsTested(function (mutationTestResult) {15});16const onAllMutantsTested = require('stryker-parent').onAllMutantsTested;17onAllMutantsTested(function (mutationTestResult) {18});19const onAllMutantsTested = require('stryker-parent').onAllMutantsTested;20onAllMutantsTested(function (mutationTestResult) {21});22const onAllMutantsTested = require('stryker-parent').onAllMutantsTested;23onAllMutantsTested(function (mutationTestResult) {24});
Using AI Code Generation
1const { onMutationTestingPlanReady } = require('stryker-parent');2onMutationTestingPlanReady(mutationTestingPlan)3 .then(() => {4 });5const { onMutationTestReportReady } = require('stryker-parent');6onMutationTestReportReady()7 .then((mutationTestReport) => {8 });9const { onAllMutantsTested } = require('stryker-parent');10onAllMutantsTested()11 .then((mutationTestReport) => {12 });
Using AI Code Generation
1const fs = require('fs');2const path = require('path');3const { Stryker } = require('stryker-parent');4const { TestRunnerFactory } = require('stryker');5const { TestFrameworkFactory } = require('stryker');6const { ConfigReader } = require('stryker');7const { TestableMutant } = require('stryker');8const { Mutant } = require('stryker');9const { MutantResult } = require('stryker');10const { MutantStatus } = require('stryker');11const { MutantTestCoverage } = require('stryker');12const { getLogger } = require('stryker');13const { RunResult } = require('stryker-api/test_runner');14const { RunStatus } = require('stryker-api/test_runner');15const log = getLogger('test');16let testFramework = new TestFrameworkFactory().create('jest', {17 config: require('./jest.config.js')18});19let testRunner = new TestRunnerFactory().create('jest', {20 config: require('./jest.config.js')21});22let config = new ConfigReader().readConfig();23config.set({ testFramework: 'jest' });24config.set({ testRunner: 'jest' });25config.set({ files: ['test.js'] });26config.set({ mutate: ['test.js'] });27config.set({ testRunner: 'jest' });28config.set({ testFramework: 'jest' });29config.set({ logLevel: 'trace' });30config.set({ maxConcurrentTestRunners: 1 });31config.set({ timeoutMS: 60000 });32config.set({ timeoutFactor: 1.5 });33config.set({ plugins: [] });34const stryker = new Stryker(config);35stryker.runMutationTest().then(() => {36 log.info('Done');37});38function onMutationTestingPlanReady(mutants) {39 log.info('onMutationTestingPlanReady');40 log.info('mutants.length: ' + mutants.length);41 for (let i = 0; i < mutants.length; i++) {42 let mutant = mutants[i];43 let mutantResult = getMutantResult(mutant);44 if (mutantResult.status === MutantStatus.Killed) {45 log.info('Killed mutant: ' + mutant.id);46 } else {47 log.info('Survived mutant: '
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!