QUnit: Detect unfinished jQuery effects or ajax requests in teardown
authorTimo Tijhof <krinklemail@gmail.com>
Fri, 11 Jul 2014 01:25:19 +0000 (03:25 +0200)
committerKrinkle <krinklemail@gmail.com>
Fri, 11 Jul 2014 01:32:59 +0000 (01:32 +0000)
Based on jQuery test suite
https://github.com/jquery/jquery/blob/bcca4f041/test/data/testrunner.js#L113-L125

Change-Id: I1dba146a6795887c23c806f292c6425662ea4aad

tests/qunit/data/testrunner.js

index 50e89da..f3f884a 100644 (file)
                                        // As a convenience feature, automatically restore warnings if they're
                                        // still suppressed by the end of the test.
                                        restoreWarnings();
+
+                                       // Check for (and clean up, if possible) incomplete animations/requests/etc.
+                                       if ( $.timers && $.timers.length !== 0 ) {
+                                               // Test may need to use fake timers, wait for animations or
+                                               // call $.fx.stop().
+                                               throw new Error( 'Unfinished animations: ' + $.timers.length );
+                                       }
+                                       if ( $.active !== undefined && $.active !== 0 ) {
+                                               // Test may need to use fake XHR, wait for requests or
+                                               // call abort().
+                                               throw new Error( 'Unfinished AJAX requests: ' + $.active );
+                                       }
                                }
                        };
                };