Skip to content

Commit

Permalink
[tests-only][full-ci]Retry listing notifications (#6839) (#6872)
Browse files Browse the repository at this point in the history
* Retry listing notifications

* use loop instaed

* use loop instaed

* throw exception

* use do while loop
  • Loading branch information
SwikritiT authored Jul 24, 2023
1 parent 28b6f05 commit b027944
Showing 1 changed file with 18 additions and 2 deletions.
20 changes: 18 additions & 2 deletions tests/acceptance/features/bootstrap/NotificationContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -315,10 +315,26 @@ public function filterResponseByNotificationSubjectAndResource(string $subject,
* @param TableNode $table
*
* @return void
* @throws Exception
*/
public function userShouldGetANotificationWithMessage(string $user, string $subject, TableNode $table):void {
$this->userListAllNotifications($user);
$actualMessage = str_replace(["\r", "\n"], " ", $this->filterResponseAccordingToNotificationSubject($subject)->message);
$count = 0;
// sometimes the test might try to get notification before the notification is created by the server
// in order to prevent test from failing because of that try to list the notifications again
do {
if ($count > 0) {
\sleep(1);
}
$this->featureContext->setResponse(null);
$this->userListAllNotifications($user);
$this->featureContext->theHTTPStatusCodeShouldBe(200);
++$count;
} while (!isset($this->filterResponseAccordingToNotificationSubject($subject)->message) && $count <= 5);
if (isset($this->filterResponseAccordingToNotificationSubject($subject)->message)) {
$actualMessage = str_replace(["\r", "\n"], " ", $this->filterResponseAccordingToNotificationSubject($subject)->message);
} else {
throw new \Exception("Notification was not found even after retrying for 5 seconds.");
}
$expectedMessage = $table->getColumnsHash()[0]['message'];
Assert::assertSame(
$expectedMessage,
Expand Down

0 comments on commit b027944

Please sign in to comment.