createUser('user@user.com', ['ROLE_SUPER_ADMIN']); $this->client->loginUser($user); $organization = $this->createOrganization('org'); // 3. Arrange: Create an Action linked to the Organization $action = new Actions(); $action->setOrganization($organization); // Link to the org $action->setUsers($user); // Link to the user $action->setActionType('UPDATE'); // Required string $action->setDescription('Updated profile details'); // Date is set automatically in __construct $this->entityManager->persist($action); $this->entityManager->flush(); // 4. Act: Request the URL using the Organization ID $url = sprintf('/actions/organization/%d/activities-ajax', $organization->getId()); $this->client->request('GET', $url); // 5. Assert: Verify Success $this->assertResponseIsSuccessful(); // Status 200 $this->assertResponseHeaderSame('content-type', 'application/json'); // 6. Assert: Verify JSON Content $responseContent = $this->client->getResponse()->getContent(); $this->assertJson($responseContent); $data = json_decode($responseContent, true); // Since we created 1 action, we expect the array to be non-empty $this->assertIsArray($data); $this->assertNotEmpty($data); } #[Test] public function fetch_activities_returns_404_for_invalid_organization(): void { $user = $this->createUser('user@user.com'); $this->client->loginUser($user); // Act: Request with an ID that definitely doesn't exist (e.g., extremely high int) $this->client->request('GET', '/actions/organization/99999999/activities-ajax'); $this->assertResponseStatusCodeSame(404); } }