From c4966a9cc1a9e098d400857349e3a3f289da100b Mon Sep 17 00:00:00 2001 From: Rostislav Wolny Date: Fri, 4 Nov 2022 11:09:31 +0100 Subject: [PATCH] Prevent flakiness when comparing time in NewsletterTest When comparing the sentAt and processedAt dates there might be one second difference. This may happen also in the application, because they are updated by separate queries. This commit fixes the flakiness by comparing timestamps with delta 1 second instead of comparing date time strings. [MAILPOET-4710] --- .../Cron/Workers/SendingQueue/Tasks/NewsletterTest.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mailpoet/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php b/mailpoet/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php index aa589f3789..2e536955b1 100644 --- a/mailpoet/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php +++ b/mailpoet/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php @@ -247,7 +247,7 @@ class NewsletterTest extends \MailPoetTest { $newsletter = $this->newslettersRepository->findOneById($this->newsletter->getId()); $this->assertInstanceOf(NewsletterEntity::class, $newsletter); $sendingQueue = $this->sendingTask->queue(); - $sendingQueue->processedAt = date('Y-m-d H:i:s'); + $sendingQueue->processedAt = new \DateTime(); // newsletter type is 'standard' $newsletter->setType(NewsletterEntity::TYPE_STANDARD); @@ -260,7 +260,7 @@ class NewsletterTest extends \MailPoetTest { expect($updatedNewsletter->getStatus())->equals(NewsletterEntity::STATUS_SENT); $sentAt = $updatedNewsletter->getSentAt(); $this->assertInstanceOf(\DateTime::class, $sentAt); - expect($sentAt->format('Y-m-d H:i:s'))->equals($sendingQueue->processedAt); + expect($sentAt->getTimestamp())->equals($sendingQueue->processedAt->getTimestamp(), 1); // newsletter type is 'notification history' $newsletter->setType(NewsletterEntity::TYPE_NOTIFICATION_HISTORY); @@ -273,7 +273,7 @@ class NewsletterTest extends \MailPoetTest { expect($updatedNewsletter->getStatus())->equals(NewsletterEntity::STATUS_SENT); $sentAt = $updatedNewsletter->getSentAt(); $this->assertInstanceOf(\DateTime::class, $sentAt); - expect($sentAt->format('Y-m-d H:i:s'))->equals($sendingQueue->processedAt); + expect($sentAt->getTimestamp())->equals($sendingQueue->processedAt->getTimestamp(), 1); // all other newsletter types $newsletter->setType(NewsletterEntity::TYPE_WELCOME);