Skip to content

Commit 6d0fbeb

Browse files
committed
Fix: tests
1 parent 58ff110 commit 6d0fbeb

File tree

4 files changed

+30
-9
lines changed

4 files changed

+30
-9
lines changed

tests/Integration/Identity/Controller/SessionControllerTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public function testPostSessionsWithInvalidCredentialsReturnsNotAuthorized()
100100
{
101101
$this->loadFixtures([AdministratorFixture::class]);
102102

103-
$loginName = 'john.doe';
103+
$loginName = 'john.doe.1';
104104
$password = 'a sandwich and a cup of coffee';
105105
$jsonData = ['login_name' => $loginName, 'password' => $password];
106106

tests/Integration/Identity/Fixtures/AdministratorFixture.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,21 @@ public function load(ObjectManager $manager): void
2929

3030
$headers = fgetcsv($handle);
3131

32+
$adminRepository = $manager->getRepository(Administrator::class);
33+
3234
do {
3335
$data = fgetcsv($handle);
3436
if ($data === false) {
3537
break;
3638
}
3739
$row = array_combine($headers, $data);
3840

41+
// Make fixture idempotent: skip if admin with this ID already exists
42+
$existing = $adminRepository->find($row['id']);
43+
if ($existing instanceof Administrator) {
44+
continue;
45+
}
46+
3947
$admin = new Administrator();
4048
$this->setSubjectId($admin, (int)$row['id']);
4149
$admin->setLoginName($row['loginname']);

tests/Integration/Identity/Fixtures/AdministratorTokenFixture.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,15 @@ public function load(ObjectManager $manager): void
4242
if ($admin === null) {
4343
$admin = new Administrator();
4444
$this->setSubjectId($admin, (int)$row['adminid']);
45+
// Use a deterministic, non-conflicting login name to avoid clashes with other fixtures
46+
$admin->setLoginName('admin_' . $row['adminid']);
4547
$admin->setSuperUser(true);
4648
$manager->persist($admin);
4749
}
4850

49-
$adminToken = new AdministratorToken();
51+
$adminToken = new AdministratorToken($admin);
5052
$this->setSubjectId($adminToken, (int)$row['id']);
5153
$adminToken->setKey($row['value']);
52-
$adminToken->setAdministrator($admin);
5354
$manager->persist($adminToken);
5455

5556
$this->setSubjectProperty($adminToken, 'expiry', new DateTime($row['expires']));

tests/Integration/Subscription/Fixtures/SubscriberListFixture.php

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public function load(ObjectManager $manager): void
3131
$headers = fgetcsv($handle);
3232

3333
$adminRepository = $manager->getRepository(Administrator::class);
34+
$adminsById = [];
3435

3536
do {
3637
$data = fgetcsv($handle);
@@ -39,13 +40,24 @@ public function load(ObjectManager $manager): void
3940
}
4041
$row = array_combine($headers, $data);
4142

42-
$admin = $adminRepository->find($row['owner']);
43+
$ownerId = (int)$row['owner'];
44+
$admin = $adminsById[$ownerId] ?? $adminRepository->find($ownerId);
4345
if ($admin === null) {
44-
$admin = new Administrator();
45-
$this->setSubjectId($admin, (int)$row['owner']);
46-
$admin->setSuperUser(true);
47-
$admin->setDisabled(false);
48-
$manager->persist($admin);
46+
// Try to reuse an existing admin with our deterministic login name
47+
$existingByLogin = $adminRepository->findOneBy(['loginName' => 'owner_' . $ownerId]);
48+
if ($existingByLogin instanceof Administrator) {
49+
$admin = $existingByLogin;
50+
$adminsById[$ownerId] = $admin;
51+
} else {
52+
$admin = new Administrator();
53+
$this->setSubjectId($admin, $ownerId);
54+
// Use a deterministic, non-conflicting login name to avoid clashes with other fixtures
55+
$admin->setLoginName('owner_' . $ownerId);
56+
$admin->setSuperUser(true);
57+
$admin->setDisabled(false);
58+
$manager->persist($admin);
59+
$adminsById[$ownerId] = $admin;
60+
}
4961
}
5062

5163
$subscriberList = new SubscriberList();

0 commit comments

Comments
 (0)