MDL-67668 behat: Correct js pending check
authorAndrew Nicols <andrew@nicols.co.uk>
Thu, 12 Nov 2020 00:17:34 +0000 (08:17 +0800)
committerAndrew Nicols <andrew@nicols.co.uk>
Mon, 23 Nov 2020 01:01:19 +0000 (09:01 +0800)
Pending checks should only run when JS is running, but some uses were
not apply this check.

lib/behat/behat_base.php

index 5298e50..8dc95d3 100644 (file)
@@ -848,11 +848,6 @@ EOF;
      * @return  bool Whether any JS is still pending completion.
      */
     public function wait_for_pending_js() {
-        if (!$this->running_javascript()) {
-            // JS is not available therefore there is nothing to wait for.
-            return false;
-        }
-
         return static::wait_for_pending_js_in_session($this->getSession());
     }
 
@@ -863,6 +858,11 @@ EOF;
      * @return  bool Whether any JS is still pending completion.
      */
     public static function wait_for_pending_js_in_session(Session $session) {
+        if (!self::running_javascript_in_session($session)) {
+            // JS is not available therefore there is nothing to wait for.
+            return false;
+        }
+
         // We don't use behat_base::spin() here as we don't want to end up with an exception
         // if the page & JSs don't finish loading properly.
         for ($i = 0; $i < self::get_extended_timeout() * 10; $i++) {