Merge pull request #185 from open-sausages/pulls/4.0/afterstep-wait-responses

ADD / After each step we wait for the server to handle all requests
This commit is contained in:
Maxime Rainville 2019-01-08 17:52:35 +13:00 committed by GitHub
commit f02fd0c11f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,6 +2,7 @@
namespace SilverStripe\BehatExtension\Context; namespace SilverStripe\BehatExtension\Context;
use Behat\Behat\Hook\Scope\AfterStepScope;
use Behat\Behat\Hook\Scope\BeforeScenarioScope; use Behat\Behat\Hook\Scope\BeforeScenarioScope;
use Behat\Mink\Element\NodeElement; use Behat\Mink\Element\NodeElement;
use Behat\Mink\Exception\ElementNotFoundException; use Behat\Mink\Exception\ElementNotFoundException;
@ -276,6 +277,27 @@ abstract class SilverStripeContext extends MinkContext implements SilverStripeAw
} }
} }
/**
* @AfterStep
*
* Wait for all requests to be handled after each step
*
* @param AfterStepScope $event
*/
public function waitResponsesAfterStep(AfterStepScope $event)
{
$success = $this->testSessionEnvironment->waitForPendingRequests();
if (!$success) {
echo (
'Warning! The timeout for waiting a response from the server has expired...'.PHP_EOL.
'I keep going on, but this test behaviour may be inconsistent.'.PHP_EOL.PHP_EOL.
'Your action required!'.PHP_EOL.PHP_EOL.
'You may want to investigate why the server is responding that slowly.'.PHP_EOL.
'Otherwise, you may need to increase the timeout.'
);
}
}
/** /**
* Returns a parameter map of state to set within the test session. * Returns a parameter map of state to set within the test session.
* Takes TESTSESSION_PARAMS environment variable into account for run-specific configurations. * Takes TESTSESSION_PARAMS environment variable into account for run-specific configurations.