diff --git a/src/Service/NewsletterManager.php b/src/Service/NewsletterManager.php index 6acd7b4..a1349f6 100644 --- a/src/Service/NewsletterManager.php +++ b/src/Service/NewsletterManager.php @@ -105,7 +105,7 @@ class NewsletterManager $missingListIds = array_values(array_diff($normalizedListIds, $confirmedListIds)); if ([] === $missingListIds) { - $this->recordSubscription($normalizedEmail, $normalizedListIds, [], $normalizedFirstName, $normalizedLastName); + $this->recordSubscription($normalizedEmail, $normalizedListIds, $normalizedFirstName, $normalizedLastName); return new NewsletterSubscriptionRequestResult( $normalizedEmail, @@ -116,7 +116,7 @@ class NewsletterManager ); } - $this->recordSubscription($normalizedEmail, $normalizedListIds, $missingListIds, $normalizedFirstName, $normalizedLastName); + $this->recordSubscription($normalizedEmail, $normalizedListIds, $normalizedFirstName, $normalizedLastName); return new NewsletterSubscriptionRequestResult( $normalizedEmail, @@ -408,13 +408,12 @@ class NewsletterManager /** * @param list $mailjetListIds - * @param list $missingListIds */ - private function recordSubscription(string $email, array $mailjetListIds, array $missingListIds, ?string $firstName, ?string $lastName): void + private function recordSubscription(string $email, array $mailjetListIds, ?string $firstName, ?string $lastName): void { $this->syncMailjetContact($email, $firstName, $lastName); - foreach ($missingListIds as $mailjetListId) { + foreach ($mailjetListIds as $mailjetListId) { $this->newsletterService->ensureSubscribed($email, $mailjetListId); } diff --git a/tests/Service/NewsletterManagerTest.php b/tests/Service/NewsletterManagerTest.php index 7fbd513..6e64719 100644 --- a/tests/Service/NewsletterManagerTest.php +++ b/tests/Service/NewsletterManagerTest.php @@ -151,8 +151,11 @@ class NewsletterManagerTest extends TestCase $mailer = $this->createMock(Mailer::class); $mailjet->expects(self::never())->method('isSubscribed'); - $mailjet->expects(self::never())->method('ensureSubscribed'); $mailjet->expects(self::once())->method('upsertContact')->with('customer@example.com', 'Mia', 'Muster'); + $mailjet + ->expects(self::exactly(2)) + ->method('ensureSubscribed') + ->withConsecutive(['customer@example.com', 1], ['customer@example.com', 2]); $consents->method('findActiveByEmail')->with('customer@example.com')->willReturn($existingConsent); $consents ->method('findOneByEmailAndListId') @@ -270,6 +273,7 @@ class NewsletterManagerTest extends TestCase $mailjet = $this->createMock(MailjetApiClient::class); $mailer = $this->createMock(Mailer::class); + $mailjet->expects(self::never())->method('ensureSubscribed'); $repository->method('deleteExpiredPendingByEmail')->willReturn(0); $repository->method('findPendingByEmail')->with('customer@example.com')->willReturn(null); $entityManager @@ -296,6 +300,7 @@ class NewsletterManagerTest extends TestCase $mailjet = $this->createMock(MailjetApiClient::class); $mailer = $this->createMock(Mailer::class); + $mailjet->expects(self::never())->method('ensureSubscribed'); $repository->method('deleteExpiredPendingByEmail')->willReturn(0); $repository->method('findPendingByEmail')->with('customer@example.com')->willReturn(null); $entityManager