diff --git a/mailpoet/tests/integration/Cron/Workers/SubscriberLinkTokensTest.php b/mailpoet/tests/integration/Cron/Workers/SubscriberLinkTokensTest.php new file mode 100644 index 0000000000..359115dc16 --- /dev/null +++ b/mailpoet/tests/integration/Cron/Workers/SubscriberLinkTokensTest.php @@ -0,0 +1,42 @@ +worker = $this->diContainer->get(SubscriberLinkTokens::class); + } + + public function testItCanSetLinkTokensWhenFieldIsNull() { + $linkToken = 'some link token'; + $subscriberWithLinkToken = (new SubscriberFactory())->withLinkToken($linkToken)->create(); + $subscriberWithoutLinkToken1 = (new SubscriberFactory())->create(); + $subscriberWithoutLinkToken2 = (new SubscriberFactory())->create(); + + $this->assertNull($subscriberWithoutLinkToken1->getLinkToken()); + $this->assertNull($subscriberWithoutLinkToken2->getLinkToken()); + + $this->worker->processTaskStrategy(new ScheduledTaskEntity(), microtime(true)); + + $this->entityManager->refresh($subscriberWithLinkToken); + $this->entityManager->refresh($subscriberWithoutLinkToken1); + $this->entityManager->refresh($subscriberWithoutLinkToken2); + + $this->assertSame($linkToken, $subscriberWithLinkToken->getLinkToken()); + $this->assertIsString($subscriberWithoutLinkToken1->getLinkToken()); + $this->assertIsString($subscriberWithoutLinkToken2->getLinkToken()); + } + + public function _after(): void { + $this->truncateEntity(SubscriberEntity::class); + } +} +