Skip to content

Commit 19e5f53

Browse files
caseylockerclaude
andcommitted
fix(promo-codes): fix serializer tests and resolve D3 deviation
Serializer unit tests (testSerializerAutoApplyField, testSerializerRemainingQuantityPerAccount, testSerializerAutoApplyEmailLinkedType) were failing because bare model instances lacked a Summit association, causing getSummitId() to call getId() on null. Added buildMockSummitForSerializer() helper and setSummit() calls in all three tests. Updated D3 deviation status to RESOLVED — AllowedEmailDomainsArray custom rule was already implemented. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
1 parent ed2064d commit 19e5f53

6 files changed

Lines changed: 116 additions & 91 deletions

File tree

app/ModelSerializers/Summit/Registration/PromoCodes/SpeakerSummitRegistrationDiscountCodeSerializer.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public function serialize($expand = null, array $fields = [], array $relations =
6161
);
6262
}
6363
}
64+
break;
6465
case 'owner_name': {
6566
if($code->hasSpeaker()){
6667
$values['owner_name'] = $code->getSpeaker()->getFullName();

app/ModelSerializers/Summit/Registration/PromoCodes/SpeakerSummitRegistrationPromoCodeSerializer.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public function serialize($expand = null, array $fields = [], array $relations =
6161
);
6262
}
6363
}
64+
break;
6465
case 'owner_name': {
6566
if($code->hasSpeaker()){
6667
$values['owner_name'] = $code->getSpeaker()->getFullName();

app/Repositories/Summit/DoctrineSummitRegistrationPromoCodeRepository.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -701,8 +701,8 @@ public function getDiscoverableByEmailForSummit(Summit $summit, string $email):
701701

702702
// Email-linked types: match by associated member/speaker email
703703
if ($code instanceof MemberSummitRegistrationPromoCode || $code instanceof MemberSummitRegistrationDiscountCode) {
704-
$owner = $code->getOwner();
705-
if (!is_null($owner) && strtolower($owner->getEmail()) === $email && $code->isLive()) {
704+
$ownerEmail = $code->getOwnerEmail();
705+
if (!empty($ownerEmail) && strtolower($ownerEmail) === $email && $code->isLive()) {
706706
$results[] = $code;
707707
}
708708
continue;

0 commit comments

Comments
 (0)