From 7f7001ea8bd8a62f4619716aa69e8b56697ec211 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Smyrek?= Date: Thu, 17 Mar 2022 13:36:16 +0100 Subject: [PATCH] Bumped Karma to v6.x --- .../ckeditor5-package-tools/lib/tasks/test.js | 8 +++-- packages/ckeditor5-package-tools/package.json | 2 +- .../tests/tasks/test.js | 31 ++++++++++++++++++- 3 files changed, 37 insertions(+), 4 deletions(-) diff --git a/packages/ckeditor5-package-tools/lib/tasks/test.js b/packages/ckeditor5-package-tools/lib/tasks/test.js index b0e11c0b..b2bafc81 100644 --- a/packages/ckeditor5-package-tools/lib/tasks/test.js +++ b/packages/ckeditor5-package-tools/lib/tasks/test.js @@ -7,7 +7,7 @@ const path = require( 'path' ); const chalk = require( 'chalk' ); -const { Server: KarmaServer } = require( 'karma' ); +const karma = require( 'karma' ); const generateEntryFile = require( '../utils/generate-entry-file' ); const getKarmaConfig = require( '../utils/get-karma-config' ); @@ -23,9 +23,13 @@ module.exports = options => { function runKarma( options ) { return new Promise( ( resolve, reject ) => { + const KarmaServer = karma.Server; + const parseConfig = karma.config.parseConfig; + const config = getKarmaConfig( options ); + const parsedConfig = parseConfig( null, config, { throwErrors: true } ); - const server = new KarmaServer( config, exitCode => { + const server = new KarmaServer( parsedConfig, exitCode => { if ( exitCode === 0 ) { resolve(); } else { diff --git a/packages/ckeditor5-package-tools/package.json b/packages/ckeditor5-package-tools/package.json index 0ef2907e..88f1069f 100644 --- a/packages/ckeditor5-package-tools/package.json +++ b/packages/ckeditor5-package-tools/package.json @@ -18,7 +18,7 @@ "chai": "^4.3.4", "css-loader": "^5.2.7", "istanbul-instrumenter-loader": "^3.0.1", - "karma": "^5.2.3", + "karma": "^6.3.17", "karma-chai": "^0.1.0", "karma-chrome-launcher": "^3.1.0", "karma-coverage": "^2.0.3", diff --git a/packages/ckeditor5-package-tools/tests/tasks/test.js b/packages/ckeditor5-package-tools/tests/tasks/test.js index fcd4d610..7aa6db35 100644 --- a/packages/ckeditor5-package-tools/tests/tasks/test.js +++ b/packages/ckeditor5-package-tools/tests/tasks/test.js @@ -37,7 +37,10 @@ describe( 'lib/tasks/test', () => { } }, karmaServerOn: sinon.stub(), - karmaServerStart: sinon.stub() + karmaServerStart: sinon.stub(), + config: { + parseConfig: sinon.stub() + } }, fs: { writeFileSync: sinon.stub(), @@ -101,6 +104,7 @@ describe( 'lib/tasks/test', () => { }; stubs.getKarmaConfig.returns( karmaConfig ); + stubs.karma.config.parseConfig.returns( karmaConfig ); setTimeout( () => { // Call the karma callback when finished executing tests. @@ -146,6 +150,31 @@ describe( 'lib/tasks/test', () => { ); } ); + it( 'should reject a promise when karma config parser throws an error', done => { + const options = { + cwd: '/cwd' + }; + + const karmaConfig = { + basePath: '/cwd' + }; + + stubs.getKarmaConfig.returns( karmaConfig ); + stubs.karma.config.parseConfig.throws( new Error( 'Example error from Karma config parser.' ) ); + + testTask( options ) + .then( + () => { + throw new Error( 'Expected to be rejected.' ); + }, + err => { + expect( err.message ).to.equal( 'Example error from Karma config parser.' ); + + done(); + } + ); + } ); + it( 'should display a path to the "coverage/" directory if the coverage option is set to true', done => { const options = { cwd: '/cwd',