0

I would like to run functional tests on an EasyAdmin 3 backend.

Basically, I want to make sure regular users cannot access pages, view fields or view/run actions they are not allowed to do.

What would be the best way to go ? Is there any useful resource I missed to get started ?

prossel
  • 111
  • 1
  • 7

1 Answers1

1

EasyAdmin 3 Crud Controllers are basically regular Symfony controllers, so they can be tested as any other Symfony controller.

<?php
// tests/Controller/AdminControllerTest.php
namespace App\Tests\Controller;

use App\Repository\UserRepository;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class AdminControllerTest extends WebTestCase
{
    // ...

    public function testVisitingWhileLoggedIn()
    {
        $client = static::createClient();
        $userRepository = static::$container->get(UserRepository::class);

        // retrieve the test user
        $testUser = $userRepository->findOneByEmail('john.doe@example.com');

        // simulate $testUser being logged in
        $client->loginUser($testUser);

        // test e.g. the admin page
        $client->request('GET', '/admin');
        $this->assertResponseStatusCodeSame(403);
    }
}

EasyAdmin Crud Doc https://symfony.com/doc/current/bundles/EasyAdminBundle/crud.html

Testing Symfony https://symfony.com/doc/current/testing.html

Flash
  • 1,101
  • 1
  • 9
  • 13