From 714b8419f77ef77e6f39303934ea6420b31a443a Mon Sep 17 00:00:00 2001 From: kmdrGroch Date: Fri, 14 Sep 2018 12:09:03 +0200 Subject: [PATCH 1/5] fix: log MODULE_NOT_FOUND when the karma.conf.js does not exist --- .../src/starters/stryker-karma.conf.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts b/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts index 56e5d65ae9..6b18e87735 100644 --- a/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts +++ b/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts @@ -15,13 +15,17 @@ function setDefaultOptions(config: Config) { function setUserKarmaConfigFile(config: Config, log: Logger) { if (globalSettings.karmaConfigFile && typeof globalSettings.karmaConfigFile === 'string') { const configFileName = path.resolve(globalSettings.karmaConfigFile); - log.debug('Importing config from "%s"', configFileName); try { const userConfig = requireModule(configFileName); + log.debug('Importing config from "%s"', configFileName); userConfig(config); config.configFile = configFileName; // override config to ensure karma is as user-like as possible } catch (error) { - log.error(`Could not read karma configuration from ${globalSettings.karmaConfigFile}.`, error); + if (error.code === 'MODULE_NOT_FOUND') { + log.error(`Unable to find karma config at "${globalSettings.karmaConfigFile}". Please check your stryker config.`); + } else { + log.error(`Could not read karma configuration from ${globalSettings.karmaConfigFile}.`, error); + } } } } From fe5ba63df77703509f0ea50852ace16049d1b6f1 Mon Sep 17 00:00:00 2001 From: Bartosz Leoniak Date: Fri, 14 Sep 2018 12:49:03 +0200 Subject: [PATCH 2/5] Update stryker-karma.conf.ts --- .../stryker-karma-runner/src/starters/stryker-karma.conf.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts b/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts index 6b18e87735..d05bb397ce 100644 --- a/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts +++ b/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts @@ -15,9 +15,9 @@ function setDefaultOptions(config: Config) { function setUserKarmaConfigFile(config: Config, log: Logger) { if (globalSettings.karmaConfigFile && typeof globalSettings.karmaConfigFile === 'string') { const configFileName = path.resolve(globalSettings.karmaConfigFile); + log.debug('Importing config from "%s"', configFileName); try { const userConfig = requireModule(configFileName); - log.debug('Importing config from "%s"', configFileName); userConfig(config); config.configFile = configFileName; // override config to ensure karma is as user-like as possible } catch (error) { From e290638944f513ad766443646c69676ed7cde4f5 Mon Sep 17 00:00:00 2001 From: kmdrGroch Date: Tue, 18 Sep 2018 15:05:12 +0200 Subject: [PATCH 3/5] fix: update error text --- .../stryker-karma-runner/src/starters/stryker-karma.conf.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts b/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts index 6b18e87735..0b1f193b0e 100644 --- a/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts +++ b/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts @@ -22,7 +22,7 @@ function setUserKarmaConfigFile(config: Config, log: Logger) { config.configFile = configFileName; // override config to ensure karma is as user-like as possible } catch (error) { if (error.code === 'MODULE_NOT_FOUND') { - log.error(`Unable to find karma config at "${globalSettings.karmaConfigFile}". Please check your stryker config.`); + log.error(`Unable to find karma config at "${globalSettings.karmaConfigFile}" (tried to load from ${configFileName}}. Please check your stryker config. You might need to make sure the file is included in the sandbox directory.`); } else { log.error(`Could not read karma configuration from ${globalSettings.karmaConfigFile}.`, error); } From 517042442535bff72eba63eadd605eb2c6179c1f Mon Sep 17 00:00:00 2001 From: Nico Jansen Date: Thu, 27 Sep 2018 21:45:08 +0200 Subject: [PATCH 4/5] Add test for error message --- .../src/starters/stryker-karma.conf.ts | 2 +- .../test/unit/starters/stryker-karma.confSpec.ts | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts b/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts index 55d43f4d81..99cff244ac 100644 --- a/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts +++ b/packages/stryker-karma-runner/src/starters/stryker-karma.conf.ts @@ -22,7 +22,7 @@ function setUserKarmaConfigFile(config: Config, log: Logger) { config.configFile = configFileName; // override config to ensure karma is as user-like as possible } catch (error) { if (error.code === 'MODULE_NOT_FOUND') { - log.error(`Unable to find karma config at "${globalSettings.karmaConfigFile}" (tried to load from ${configFileName}}. Please check your stryker config. You might need to make sure the file is included in the sandbox directory.`); + log.error(`Unable to find karma config at "${globalSettings.karmaConfigFile}" (tried to load from ${configFileName}). Please check your stryker config. You might need to make sure the file is included in the sandbox directory.`); } else { log.error(`Could not read karma configuration from ${globalSettings.karmaConfigFile}.`, error); } diff --git a/packages/stryker-karma-runner/test/unit/starters/stryker-karma.confSpec.ts b/packages/stryker-karma-runner/test/unit/starters/stryker-karma.confSpec.ts index 6925dd5f6e..ce4d757d1b 100644 --- a/packages/stryker-karma-runner/test/unit/starters/stryker-karma.confSpec.ts +++ b/packages/stryker-karma-runner/test/unit/starters/stryker-karma.confSpec.ts @@ -54,6 +54,22 @@ describe('stryker-karma.conf.js', () => { expect(requireModuleStub).calledWith(path.resolve('foobar.conf.js')); }); + it('should log an error if the karma config file could not be found', () => { + // Arrange + const actualError = new Error('Module not found') as NodeJS.ErrnoException; + actualError.code = 'MODULE_NOT_FOUND'; + requireModuleStub.throws(actualError); + const expectedKarmaConfigFile = 'foobar.conf.js'; + sut.setGlobals({ karmaConfigFile: expectedKarmaConfigFile }); + + // Act + sut(config); + + // Assert + expect(logMock.error).calledWithMatch(`Unable to find karma config at "foobar.conf.js" (tried to load from ${path.resolve(expectedKarmaConfigFile)})`); + expect(requireModuleStub).calledWith(path.resolve(expectedKarmaConfigFile)); + }); + it('should set user configuration from custom karma config', () => { sut.setGlobals({ karmaConfig: { basePath: 'foobar' } }); sut(config); From b47f2faf86037b614c5f774ed85fab911d07fa80 Mon Sep 17 00:00:00 2001 From: Nico Jansen Date: Thu, 27 Sep 2018 22:09:40 +0200 Subject: [PATCH 5/5] Fix compile error --- .../test/unit/mutators/RemoveConditionalsMutatorSpec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/stryker/test/unit/mutators/RemoveConditionalsMutatorSpec.ts b/packages/stryker/test/unit/mutators/RemoveConditionalsMutatorSpec.ts index 0606a1f913..2875a2a9ca 100644 --- a/packages/stryker/test/unit/mutators/RemoveConditionalsMutatorSpec.ts +++ b/packages/stryker/test/unit/mutators/RemoveConditionalsMutatorSpec.ts @@ -126,7 +126,7 @@ describe('RemoveConditionalsMutator', () => { describe('should generate multiple mutants', () => { it('when given an if-statement', () => { - const mutatedNodes = actMutator(ifStatement) as [estree.SimpleLiteral & Identified]; + const mutatedNodes = actMutator(ifStatement) as (estree.SimpleLiteral & Identified)[]; expect(mutatedNodes).to.have.length(2); expect(mutatedNodes[0].nodeID).not.to.eq(ifStatement.nodeID); @@ -138,7 +138,7 @@ describe('RemoveConditionalsMutator', () => { }); it('when given a ternary-statement', () => { - const mutatedNodes = actMutator(ternaryExpression) as [estree.SimpleLiteral & Identified]; + const mutatedNodes = actMutator(ternaryExpression) as (estree.SimpleLiteral & Identified)[]; expect(mutatedNodes).to.have.length(2); expect(mutatedNodes[0].nodeID).not.to.eq(ternaryExpression.nodeID);