false, 'verificationToken' => 'expired-token', 'verificationTokenExpiresAt' => new DateTime('-1 minute'), ]); $pendingUser = UserFactory::createOne([ 'isVerified' => false, 'verificationToken' => 'valid-token', 'verificationTokenExpiresAt' => new DateTime('+1 day'), ]); $verifiedUser = UserFactory::createOne([ 'isVerified' => true, 'verificationToken' => 'verified-token', 'verificationTokenExpiresAt' => new DateTime('-1 minute'), ]); $command = static::getContainer()->get(PurgeExpiredPendingUsersCommand::class); $tester = new CommandTester($command); $tester->execute([]); $em = static::getContainer()->get(EntityManagerInterface::class); self::assertNull($em->find(User::class, $expiredUser->id)); self::assertNotNull($em->find(User::class, $pendingUser->id)); self::assertNotNull($em->find(User::class, $verifiedUser->id)); } #[Test] #[TestDox('Dry run keeps expired unverified users')] public function dryRunDoesNotDeleteExpiredUsers(): void { $expiredUser = UserFactory::createOne([ 'isVerified' => false, 'verificationToken' => 'expired-token', 'verificationTokenExpiresAt' => new DateTime('-1 minute'), ]); $command = static::getContainer()->get(PurgeExpiredPendingUsersCommand::class); $tester = new CommandTester($command); $tester->execute(['--dry-run' => true]); $em = static::getContainer()->get(EntityManagerInterface::class); self::assertNotNull($em->find(User::class, $expiredUser->id)); } }