Skip to content

Commit 42e9df3

Browse files
committed
Create trait to simplify authentication in tests
1 parent ed850db commit 42e9df3

File tree

3 files changed

+30
-28
lines changed

3 files changed

+30
-28
lines changed

tests/FunctionalTests/DashboardPackagesControllerTest.php

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,12 @@
99

1010
class DashboardPackagesControllerTest extends WebTestCase
1111
{
12+
use WebTestCaseTrait;
13+
1214
public function testStatistics(): void
1315
{
1416
$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);
17+
$this->loginUser($client, 'user');
2218

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

@@ -38,13 +34,7 @@ public function testStatistics(): void
3834
public function testAddVcsRepository(): void
3935
{
4036
$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);
37+
$this->loginUser($client, 'admin');
4838

4939
$client->request('GET', '/?routeName=dashboard_packages_add_vcs');
5040
$client->submitForm('Add VCS repository', [
@@ -65,13 +55,7 @@ public function testAddVcsRepository(): void
6555
public function testEdit(): void
6656
{
6757
$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);
58+
$this->loginUser($client, 'admin');
7559

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

tests/FunctionalTests/DashboardRootControllerTest.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,12 @@
88

99
class DashboardRootControllerTest extends WebTestCase
1010
{
11+
use WebTestCaseTrait;
12+
1113
public function testIndex(): void
1214
{
1315
$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);
16+
$this->loginUser($client, 'user');
2117

2218
$client->request('GET', '/');
2319

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+
use Symfony\Bundle\FrameworkBundle\KernelBrowser;
8+
9+
trait WebTestCaseTrait
10+
{
11+
protected function loginUser(KernelBrowser $client, string $username): User
12+
{
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)