Skip to content

Commit b7f4d56

Browse files
committed
Create trait to simplify authentication in tests
1 parent 3a5cafe commit b7f4d56

File tree

3 files changed

+30
-32
lines changed

3 files changed

+30
-32
lines changed

tests/FunctionalTests/DashboardPackagesControllerTest.php

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,17 @@
22

33
namespace CodedMonkey\Dirigent\Tests\FunctionalTests;
44

5-
use CodedMonkey\Dirigent\Doctrine\Entity\User;
65
use CodedMonkey\Dirigent\Doctrine\Repository\PackageRepository;
7-
use CodedMonkey\Dirigent\Doctrine\Repository\UserRepository;
86
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
97

108
class DashboardPackagesControllerTest extends WebTestCase
119
{
10+
use WebTestCaseTrait;
11+
1212
public function testStatistics(): void
1313
{
1414
$client = static::createClient();
15-
16-
/** @var UserRepository $userRepository */
17-
$userRepository = $client->getContainer()->get(UserRepository::class);
18-
19-
/** @var User $user */
20-
$user = $userRepository->findOneByUsername('user');
21-
$client->loginUser($user);
15+
$this->loginUser();
2216

2317
$client->request('GET', '/?routeName=dashboard_packages_statistics&routeParams[packageName]=psr/log');
2418

@@ -38,13 +32,7 @@ public function testStatistics(): void
3832
public function testAddVcsRepository(): void
3933
{
4034
$client = static::createClient();
41-
42-
/** @var UserRepository $userRepository */
43-
$userRepository = $client->getContainer()->get(UserRepository::class);
44-
45-
/** @var User $user */
46-
$user = $userRepository->findOneByUsername('owner');
47-
$client->loginUser($user);
35+
$this->loginUser('admin');
4836

4937
$client->request('GET', '/?routeName=dashboard_packages_add_vcs');
5038
$client->submitForm('Add VCS repository', [
@@ -65,13 +53,7 @@ public function testAddVcsRepository(): void
6553
public function testEdit(): void
6654
{
6755
$client = static::createClient();
68-
69-
/** @var UserRepository $userRepository */
70-
$userRepository = $client->getContainer()->get(UserRepository::class);
71-
72-
/** @var User $user */
73-
$user = $userRepository->findOneByUsername('owner');
74-
$client->loginUser($user);
56+
$this->loginUser('admin');
7557

7658
$client->request('GET', '/?routeName=dashboard_packages_edit&routeParams[packageName]=psr/log');
7759
$client->submitForm('Save changes');

tests/FunctionalTests/DashboardRootControllerTest.php

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,16 @@
22

33
namespace CodedMonkey\Dirigent\Tests\FunctionalTests;
44

5-
use CodedMonkey\Dirigent\Doctrine\Entity\User;
6-
use CodedMonkey\Dirigent\Doctrine\Repository\UserRepository;
75
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
86

97
class DashboardRootControllerTest extends WebTestCase
108
{
9+
use WebTestCaseTrait;
10+
1111
public function testIndex(): void
1212
{
1313
$client = static::createClient();
14-
15-
/** @var UserRepository $userRepository */
16-
$userRepository = $client->getContainer()->get(UserRepository::class);
17-
18-
/** @var User $user */
19-
$user = $userRepository->findOneByUsername('user');
20-
$client->loginUser($user);
14+
$this->loginUser();
2115

2216
$client->request('GET', '/');
2317

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
3+
namespace CodedMonkey\Dirigent\Tests\FunctionalTests;
4+
5+
use CodedMonkey\Dirigent\Doctrine\Entity\User;
6+
use CodedMonkey\Dirigent\Doctrine\Repository\UserRepository;
7+
8+
trait WebTestCaseTrait
9+
{
10+
protected function loginUser(string $username = 'user'): User
11+
{
12+
$client = static::getClient();
13+
/** @var UserRepository $userRepository */
14+
$userRepository = $client->getContainer()->get(UserRepository::class);
15+
16+
/** @var User $user */
17+
$user = $userRepository->findOneByUsername($username);
18+
$client->loginUser($user);
19+
20+
return $user;
21+
}
22+
}

0 commit comments

Comments
 (0)