diff --git a/tests/e2e/Controllers/PlanControllerTest.php b/tests/e2e/Controllers/PlanControllerTest.php index a14fd7d..cf0eeb0 100644 --- a/tests/e2e/Controllers/PlanControllerTest.php +++ b/tests/e2e/Controllers/PlanControllerTest.php @@ -8,6 +8,7 @@ use App\Plan\UseCases\CreatePlan; use App\ScheduledNode\UseCases\CreateScheduledNode; use App\Text\CreateTextDto; use App\User\UseCases\CreateUserDto; +use App\User\User; use App\ValueObjects\EmailAddress; use PHPUnit\Framework\TestCase; use Psr\Http\Message\ServerRequestInterface; @@ -29,6 +30,7 @@ class PlanControllerTest extends TestCase private FakeScheduledNodeRepository $scheduledNodeRepo; private CreatePlan $createPlan; private PlanController $controller; + private User $user; public function setUp(): void { @@ -38,7 +40,7 @@ class PlanControllerTest extends TestCase $this->nodeRepo = new FakeNodeRepository(); $this->scheduledNodeRepo = new FakeScheduledNodeRepository(); - $this->userRepo->create(new CreateUserDto( + $this->user = $this->userRepo->create(new CreateUserDto( email: new EmailAddress('test@test.com'), passwordHash: '', )); @@ -69,6 +71,7 @@ class PlanControllerTest extends TestCase return new ServerRequestFactory() ->createServerRequest('POST', 'http://localhost/api/plans') ->withHeader('Content-Type', 'application/json') + ->withAttribute('user', $this->user) ->withBody($body); } @@ -76,7 +79,6 @@ class PlanControllerTest extends TestCase { $response = $this->controller->createPlan( $this->makeRequest([ - 'userId' => 0, 'textId' => 0, 'name' => 'My Plan', 'dateStart' => '2025-01-01', @@ -92,29 +94,33 @@ class PlanControllerTest extends TestCase $this->assertEquals('My Plan', $body['name']); } - public function test_create_plan_returns_400_when_user_id_missing(): void + public function test_create_plan_returns_401_when_no_user(): void { + $requestWithoutUser = new ServerRequestFactory() + ->createServerRequest('POST', 'http://localhost/api/plans') + ->withHeader('Content-Type', 'application/json') + ->withBody( + new StreamFactory()->createStream(json_encode([ + 'textId' => 0, + 'name' => 'My Plan', + 'dateStart' => '2025-01-01', + 'dateEnd' => '2025-01-01', + ])) + ); + $response = $this->controller->createPlan( - $this->makeRequest([ - 'textId' => 0, - 'name' => 'My Plan', - 'dateStart' => '2025-01-01', - 'dateEnd' => '2025-01-01', - ]), + $requestWithoutUser, new Response(), $this->createPlan, ); - $this->assertEquals(400, $response->getStatusCode()); - $body = json_decode($response->getBody(), true); - $this->assertArrayHasKey('error', $body); + $this->assertEquals(401, $response->getStatusCode()); } public function test_create_plan_returns_400_when_text_id_missing(): void { $response = $this->controller->createPlan( $this->makeRequest([ - 'userId' => 0, 'name' => 'My Plan', 'dateStart' => '2025-01-01', 'dateEnd' => '2025-01-01', @@ -132,7 +138,6 @@ class PlanControllerTest extends TestCase { $response = $this->controller->createPlan( $this->makeRequest([ - 'userId' => 0, 'textId' => 0, 'dateStart' => '2025-01-01', 'dateEnd' => '2025-01-01', @@ -150,7 +155,6 @@ class PlanControllerTest extends TestCase { $response = $this->controller->createPlan( $this->makeRequest([ - 'userId' => 0, 'textId' => 0, 'name' => 'My Plan', 'dateEnd' => '2025-01-01', @@ -168,7 +172,6 @@ class PlanControllerTest extends TestCase { $response = $this->controller->createPlan( $this->makeRequest([ - 'userId' => 0, 'textId' => 0, 'name' => 'My Plan', 'dateStart' => '2025-01-01', @@ -186,7 +189,6 @@ class PlanControllerTest extends TestCase { $response = $this->controller->createPlan( $this->makeRequest([ - 'userId' => 0, 'textId' => 0, 'name' => 'My Plan', 'dateStart' => '2025-01-02', @@ -201,30 +203,10 @@ class PlanControllerTest extends TestCase $this->assertArrayHasKey('error', $body); } - public function test_create_plan_returns_404_when_user_not_found(): void - { - $response = $this->controller->createPlan( - $this->makeRequest([ - 'userId' => 99, - 'textId' => 0, - 'name' => 'My Plan', - 'dateStart' => '2025-01-01', - 'dateEnd' => '2025-01-01', - ]), - new Response(), - $this->createPlan, - ); - - $this->assertEquals(404, $response->getStatusCode()); - $body = json_decode($response->getBody(), true); - $this->assertArrayHasKey('error', $body); - } - public function test_create_plan_returns_404_when_text_not_found(): void { $response = $this->controller->createPlan( $this->makeRequest([ - 'userId' => 0, 'textId' => 99, 'name' => 'My Plan', 'dateStart' => '2025-01-01', @@ -243,7 +225,6 @@ class PlanControllerTest extends TestCase { $this->controller->createPlan( $this->makeRequest([ - 'userId' => 0, 'textId' => 0, 'name' => 'Persistent Plan', 'dateStart' => '2025-01-01', @@ -262,7 +243,6 @@ class PlanControllerTest extends TestCase { $this->controller->createPlan( $this->makeRequest([ - 'userId' => 0, 'textId' => 0, 'name' => 'Scheduling Plan', 'dateStart' => '2025-01-01',