fail-fast: false
matrix:
# Node.js 10 is required by jQuery infra
- NODE_VERSION: [10.x, 12.x, 14.x, 16.x]
+ # Do not remove 16.x until jsdom tests are re-enabled on newer Node.js versions.
+ NODE_VERSION: [10.x, 12.x, 14.x, 16.x, 17.x]
NPM_SCRIPT: ["test:browserless"]
include:
- NAME: "Browser tests: full build, Chrome & Firefox stable"
var fs = require( "fs" ),
gzip = require( "gzip-js" ),
oldNode = /^v10\./.test( process.version ),
+ nodeV17OrNewer = !/^v1[0246]\./.test( process.version ),
isCi = process.env.GITHUB_ACTION,
ciBrowsers = process.env.BROWSERS && process.env.BROWSERS.split( "," );
grunt.log.writeln( "Old Node.js detected, running the task \"" + task + "\" skipped..." );
} );
+ grunt.registerTask( "print_jsdom_message", () => {
+ grunt.log.writeln( "Node.js 17 or newer detected, skipping jsdom tests..." );
+ } );
+
grunt.registerTask( "lint", [
"jsonlint",
runIfNewNode( "newer:eslint:dist" )
] );
- grunt.registerTask( "test:fast", "node_smoke_tests" );
+ grunt.registerTask( "test:fast", runIfNewNode( "node_smoke_tests" ) );
grunt.registerTask( "test:slow", [
- "promises_aplus_tests",
- "karma:jsdom"
+ runIfNewNode( "promises_aplus_tests" ),
+
+ // Support: Node.js 17+
+ // jsdom fails to connect to the Karma server in Node 17+.
+ // Until we figure out a fix, skip jsdom tests there.
+ nodeV17OrNewer ? "print_jsdom_message" : runIfNewNode( "karma:jsdom" )
] );
grunt.registerTask( "test:prepare", [
"core-js-bundle": "3.6.5",
"eslint-config-jquery": "3.0.0",
"eslint-plugin-import": "2.25.2",
- "grunt": "1.2.1",
+ "grunt": "1.4.1",
"grunt-babel": "8.0.0",
- "grunt-cli": "1.3.2",
+ "grunt-cli": "1.4.3",
"grunt-compare-size": "0.4.2",
"grunt-contrib-uglify": "3.4.0",
"grunt-contrib-watch": "1.1.0",
"grunt-eslint": "24.0.0",
"grunt-git-authors": "3.2.0",
"grunt-jsonlint": "2.1.2",
- "grunt-karma": "4.0.0",
+ "grunt-karma": "4.0.2",
"grunt-newer": "1.3.0",
"grunt-npmcopy": "0.2.0",
"gzip-js": "0.3.2",
"husky": "4.2.5",
"insight": "0.10.3",
- "jsdom": "16.3.0",
- "karma": "5.1.0",
+ "jsdom": "19.0.0",
+ "karma": "^6.3.17",
"karma-browserstack-launcher": "1.6.0",
- "karma-chrome-launcher": "3.1.0",
- "karma-firefox-launcher": "1.3.0",
+ "karma-chrome-launcher": "3.1.1",
+ "karma-firefox-launcher": "2.1.2",
"karma-ie-launcher": "1.0.0",
- "karma-jsdom-launcher": "8.0.2",
- "karma-qunit": "4.1.1",
+ "karma-jsdom-launcher": "12.0.0",
+ "karma-qunit": "4.1.2",
"load-grunt-tasks": "5.1.0",
"native-promise-only": "0.8.1",
"promises-aplus-tests": "2.1.2",