Ability to create tests with nested modules
authorAleksey Bekh-Ivanov (WMDE) <aleksey.bekh-ivanov@wikimedia.de>
Thu, 1 Jun 2017 22:14:56 +0000 (00:14 +0200)
committerThiemo Mättig (WMDE) <thiemo.maettig@wikimedia.de>
Fri, 2 Jun 2017 11:28:48 +0000 (11:28 +0000)
Change-Id: Ie0bf2dcfb63e7dc53cd5afe411e2fbb8d1bbfd73

tests/qunit/data/testrunner.js

index a947484..39baf17 100644 (file)
        ( function () {
                var orgModule = QUnit.module;
 
-               QUnit.module = function ( name, localEnv ) {
+               QUnit.module = function ( name, localEnv, executeNow ) {
+                       if ( arguments.length === 2 && typeof localEnv === 'function' ) {
+                               executeNow = localEnv;
+                               localEnv = undefined;
+                       }
+
                        localEnv = localEnv || {};
                        orgModule( name, {
                                setup: function () {
                                                localEnv.teardown.call( this );
                                        }
 
-                                       this.sandbox.verifyAndRestore();
+                                       if ( this.sandbox ) {
+                                               this.sandbox.verifyAndRestore();
+                                       }
                                }
-                       } );
+                       }, executeNow );
                };
        }() );
 
        ( function () {
                var orgModule = QUnit.module;
 
-               QUnit.module = function ( name, localEnv ) {
+               QUnit.module = function ( name, localEnv, executeNow ) {
                        var fixture;
+
+                       if ( arguments.length === 2 && typeof localEnv === 'function' ) {
+                               executeNow = localEnv;
+                               localEnv = undefined;
+                       }
+
                        localEnv = localEnv || {};
                        orgModule( name, {
                                setup: function () {
 
                                        fixture.parentNode.removeChild( fixture );
                                }
-                       } );
+                       }, executeNow );
                };
        }() );