diff --git a/Gruntfile.js b/Gruntfile.js index c966ef99e..562d286f6 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -158,14 +158,31 @@ module.exports = function( grunt ) { "test/jquery.js", - { pattern: "dist/jquery.*", included: false, served: true }, - { pattern: "src/**", type: "module", included: false, served: true }, - { pattern: "amd/**", included: false, served: true }, + { + pattern: "dist/jquery.*", + included: false, + served: true, + nocache: true + }, + { + pattern: "src/**", + type: "module", + included: false, + served: true, + nocache: true + }, + { + pattern: "amd/**", + included: false, + served: true, + nocache: true + }, { pattern: "node_modules/**", included: false, served: true }, { pattern: "test/**/*.@(js|css|jpg|html|xml|svg)", included: false, - served: true + served: true, + nocache: true } ], reporters: [ "dots" ], diff --git a/test/jquery.js b/test/jquery.js index be2445395..2d12a5ff3 100644 --- a/test/jquery.js +++ b/test/jquery.js @@ -2,29 +2,34 @@ ( function() { /* global loadTests: false */ - var dynamicImportSource, + var dynamicImportSource, config, src, FILEPATH = "/test/jquery.js", activeScript = [].slice.call( document.getElementsByTagName( "script" ), -1 )[ 0 ], parentUrl = activeScript && activeScript.src ? activeScript.src.replace( /[?#].*/, "" ) + FILEPATH.replace( /[^/]+/g, ".." ) + "/" : "../", QUnit = window.QUnit, - require = window.require, + require = window.require; + + function getQUnitConfig() { + var config = Object.create( null ); // Default to unminified jQuery for directly-opened iframes - config = QUnit ? + if ( !QUnit ) { + config.dev = true; + } else { // QUnit.config is populated from QUnit.urlParams but only at the beginning // of the test run. We need to read both. - { - esmodules: !!( QUnit.config.esmodules || QUnit.urlParams.esmodules ), - amd: !!( QUnit.config.amd || QUnit.urlParams.amd ) - } : + QUnit.config.urlConfig.forEach( function( entry ) { + config[ entry.id ] = QUnit.config[ entry.id ] != null ? + QUnit.config[ entry.id ] : + QUnit.urlParams[ entry.id ]; + } ); + } - { dev: true }, - src = config.dev ? - "dist/jquery.js" : - "dist/jquery.min.js"; + return config; + } // Define configuration parameters controlling how jQuery is loaded if ( QUnit ) { @@ -43,6 +48,12 @@ } ); } + config = getQUnitConfig(); + + src = config.dev ? + "dist/jquery.js" : + "dist/jquery.min.js"; + // Honor ES modules loading on the main window (detected by seeing QUnit on it). // This doesn't apply to iframes because they synchronously expect jQuery to be there. if ( config.esmodules && QUnit ) {