From 5e112638a617e8f81869055c28bf2a43ec46baa4 Mon Sep 17 00:00:00 2001 From: Application-drop-up Date: Sat, 1 Aug 2026 19:00:41 +0900 Subject: [PATCH 1/2] fix: default subscription_tier to free in SubscriptionFactory when omitted --- src/app/Packages/Domains/User/Factory/SubscriptionFactory.php | 2 +- src/app/Packages/Domains/User/Factory/UserEntityFactory.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/Packages/Domains/User/Factory/SubscriptionFactory.php b/src/app/Packages/Domains/User/Factory/SubscriptionFactory.php index 2a87aca..abf9122 100644 --- a/src/app/Packages/Domains/User/Factory/SubscriptionFactory.php +++ b/src/app/Packages/Domains/User/Factory/SubscriptionFactory.php @@ -21,7 +21,7 @@ public static function build(array $data): Subscription } return new Subscription( - SubscriptionTier::from($data['tier']), + SubscriptionTier::from($data['tier'] ?? SubscriptionTier::Free->value), $expiresAt, $now, ); diff --git a/src/app/Packages/Domains/User/Factory/UserEntityFactory.php b/src/app/Packages/Domains/User/Factory/UserEntityFactory.php index 5082d3f..82ebfd9 100644 --- a/src/app/Packages/Domains/User/Factory/UserEntityFactory.php +++ b/src/app/Packages/Domains/User/Factory/UserEntityFactory.php @@ -12,7 +12,7 @@ final class UserEntityFactory public static function build(array $data): UserEntity { $subscription = SubscriptionFactory::build([ - 'tier' => $data['subscription_tier'], + 'tier' => $data['subscription_tier'] ?? null, 'expires_at' => $data['subscription_expires_at'] ?? null, 'now' => $data['now'] ?? null, ]); From a764093bb50f3758a7d72e7317228b5cb20a2d3f Mon Sep 17 00:00:00 2001 From: Application-drop-up Date: Sat, 1 Aug 2026 19:00:51 +0900 Subject: [PATCH 2/2] test: cover subscription_tier default in UserEntityFactory --- .../User/Tests/Factory/UserEntityFactoryTest.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/app/Packages/Domains/User/Tests/Factory/UserEntityFactoryTest.php b/src/app/Packages/Domains/User/Tests/Factory/UserEntityFactoryTest.php index c5649cf..79f7c75 100644 --- a/src/app/Packages/Domains/User/Tests/Factory/UserEntityFactoryTest.php +++ b/src/app/Packages/Domains/User/Tests/Factory/UserEntityFactoryTest.php @@ -55,6 +55,22 @@ public function test_build_sets_password_hash_when_provided(): void $this->assertSame('hashed_value', $entity->getPasswordHash()); } + public function test_build_defaults_subscription_tier_to_free_when_omitted(): void + { + $faker = FakerFactory::create(); + + $entity = UserEntityFactory::build([ + 'id' => $faker->unique()->randomNumber(5), + 'first_name' => $faker->firstName(), + 'last_name' => $faker->lastName(), + 'email' => $faker->unique()->safeEmail(), + 'age_range' => 'teens', + 'subscription_expires_at' => null, + ]); + + $this->assertTrue($entity->getSubscription()->isFree()); + } + public function test_build_passes_expires_at_to_subscription(): void { $faker = FakerFactory::create();