From 86052efbcb1d18b5120dec5eb84c1a3f205e0656 Mon Sep 17 00:00:00 2001 From: Yisroel Baum Date: Sun, 19 Apr 2026 23:12:41 +0300 Subject: [PATCH] test create plan use case validates null fields --- tests/Unit/Plan/UseCases/CreatePlanTest.php | 37 +++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/tests/Unit/Plan/UseCases/CreatePlanTest.php b/tests/Unit/Plan/UseCases/CreatePlanTest.php index 32f9162..26af21d 100644 --- a/tests/Unit/Plan/UseCases/CreatePlanTest.php +++ b/tests/Unit/Plan/UseCases/CreatePlanTest.php @@ -2,6 +2,7 @@ namespace Tests\Unit\Plan\UseCases; +use App\Exceptions\BadRequestException; use App\Node\CreateNodeDto; use App\Plan\UseCases\CreatePlan; use App\Plan\UseCases\CreatePlanRequest; @@ -125,4 +126,40 @@ class CreatePlanTest extends TestCase $this->scheduledNodeRepo->getNumberOfTimesCreateCalled() ); } + + public function test_throws_if_user_id_is_null(): void + { + $this->expectException(BadRequestException::class); + $this->expectExceptionMessage('userId is required'); + + $this->useCase->execute(new CreatePlanRequest( + userId: null, + name: 'testPlan', + textId: 0, + )); + } + + public function test_throws_if_text_id_is_null(): void + { + $this->expectException(BadRequestException::class); + $this->expectExceptionMessage('textId is required'); + + $this->useCase->execute(new CreatePlanRequest( + userId: 0, + name: 'testPlan', + textId: null, + )); + } + + public function test_throws_if_name_is_null(): void + { + $this->expectException(BadRequestException::class); + $this->expectExceptionMessage('name is required'); + + $this->useCase->execute(new CreatePlanRequest( + userId: 0, + name: null, + textId: 0, + )); + } }