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',