Skip to content

Commit e56bdbe

Browse files
nikophilsmnandre
authored andcommitted
chore: upgrade foundry 2
1 parent c139beb commit e56bdbe

File tree

3 files changed

+42
-71
lines changed

3 files changed

+42
-71
lines changed

src/LiveComponent/tests/Fixtures/Factory/CompositeIdEntityFactory.php

Lines changed: 6 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,37 +13,22 @@
1313

1414
use Symfony\UX\LiveComponent\Tests\Fixtures\Entity\CompositeIdEntity;
1515
use Zenstruck\Foundry\Persistence\PersistentProxyObjectFactory;
16-
use Zenstruck\Foundry\Persistence\Proxy;
1716

1817
/**
1918
* @extends PersistentProxyObjectFactory<CompositeIdEntity>
20-
*
21-
* @method static CompositeIdEntity|Proxy createOne(array $attributes = [])
22-
* @method static CompositeIdEntity[]|Proxy[] createMany(int $number, array|callable $attributes = [])
23-
* @method static CompositeIdEntity|Proxy find(object|array|mixed $criteria)
24-
* @method static CompositeIdEntity|Proxy findOrCreate(array $attributes)
25-
* @method static CompositeIdEntity|Proxy first(string $sortedField = 'id')
26-
* @method static CompositeIdEntity|Proxy last(string $sortedField = 'id')
27-
* @method static CompositeIdEntity|Proxy random(array $attributes = [])
28-
* @method static CompositeIdEntity|Proxy randomOrCreate(array $attributes = []))
29-
* @method static CompositeIdEntity[]|Proxy[] all()
30-
* @method static CompositeIdEntity[]|Proxy[] findBy(array $attributes)
31-
* @method static CompositeIdEntity[]|Proxy[] randomSet(int $number, array $attributes = []))
32-
* @method static CompositeIdEntity[]|Proxy[] randomRange(int $min, int $max, array $attributes = []))
33-
* @method CompositeIdEntity|Proxy create(array|callable $attributes = [])
3419
*/
3520
class CompositeIdEntityFactory extends PersistentProxyObjectFactory
3621
{
37-
protected function defaults(): array|callable
22+
public static function class(): string
23+
{
24+
return CompositeIdEntity::class;
25+
}
26+
27+
protected function defaults(): array
3828
{
3929
return [
4030
'firstIdPart' => rand(1, \PHP_INT_MAX),
4131
'secondIdPart' => rand(1, \PHP_INT_MAX),
4232
];
4333
}
44-
45-
public static function class(): string
46-
{
47-
return CompositeIdEntity::class;
48-
}
4934
}

src/LiveComponent/tests/Fixtures/Factory/ForeignKeyIdEntityFactory.php

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,34 +15,20 @@
1515
use Symfony\UX\LiveComponent\Tests\Fixtures\Entity\ForeignKeyIdEntity;
1616
use Zenstruck\Foundry\Persistence\PersistentProxyObjectFactory;
1717

18-
use Zenstruck\Foundry\Persistence\Proxy;
1918
use function Zenstruck\Foundry\lazy;
2019

2120
/**
2221
* @extends PersistentProxyObjectFactory<ForeignKeyIdEntity>
23-
*
24-
* @method static ForeignKeyIdEntity|Proxy createOne(array $attributes = [])
25-
* @method static ForeignKeyIdEntity[]|Proxy[] createMany(int $number, array|callable $attributes = [])
26-
* @method static ForeignKeyIdEntity|Proxy find(object|array|mixed $criteria)
27-
* @method static ForeignKeyIdEntity|Proxy findOrCreate(array $attributes)
28-
* @method static ForeignKeyIdEntity|Proxy first(string $sortedField = 'id')
29-
* @method static ForeignKeyIdEntity|Proxy last(string $sortedField = 'id')
30-
* @method static ForeignKeyIdEntity|Proxy random(array $attributes = [])
31-
* @method static ForeignKeyIdEntity|Proxy randomOrCreate(array $attributes = []))
32-
* @method static ForeignKeyIdEntity[]|Proxy[] all()
33-
* @method static ForeignKeyIdEntity[]|Proxy[] findBy(array $attributes)
34-
* @method static ForeignKeyIdEntity[]|Proxy[] randomSet(int $number, array $attributes = []))
35-
* @method static ForeignKeyIdEntity[]|Proxy[] randomRange(int $min, int $max, array $attributes = []))
3622
*/
3723
class ForeignKeyIdEntityFactory extends PersistentProxyObjectFactory
3824
{
39-
protected function defaults(): array|callable
25+
public static function class(): string
4026
{
41-
return ['id' => lazy(static fn () => new Entity1())];
27+
return ForeignKeyIdEntity::class;
4228
}
4329

44-
public static function class(): string
30+
protected function defaults(): array
4531
{
46-
return ForeignKeyIdEntity::class;
32+
return ['id' => lazy(static fn () => new Entity1())];
4733
}
4834
}

src/LiveComponent/tests/Integration/LiveComponentHydratorTest.php

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@
4444
use Zenstruck\Foundry\Test\Factories;
4545
use Zenstruck\Foundry\Test\ResetDatabase;
4646

47-
use function Zenstruck\Foundry\factory;
47+
use function Zenstruck\Foundry\object;
4848
use function Zenstruck\Foundry\Persistence\persist;
49+
use function Zenstruck\Foundry\Persistence\proxy;
4950

5051
/**
5152
* @author Kevin Bond <kevinbond@gmail.com>
@@ -78,7 +79,6 @@ private function executeHydrationTestCase(callable $testFactory, ?int $minPhpVer
7879
$hydratedComponent2 = clone $testCase->component;
7980

8081
$liveMetadata = $testCase->liveMetadata;
81-
8282
$this->factory()->mountFromObject(
8383
$originalComponentWithData,
8484
$testCase->inputProps,
@@ -401,14 +401,14 @@ public function onEntireEntityUpdated($oldValue)
401401
}];
402402

403403
yield 'Persisted entity: deleting entity between dehydration and hydration sets it to null' => [function () {
404-
$product = persist(ProductFixtureEntity::class);
404+
$product = proxy(persist(ProductFixtureEntity::class));
405405

406406
return HydrationTest::create(new class {
407407
// test that event the writable path doesn't cause problems
408408
#[LiveProp(writable: ['name'])]
409409
public ?ProductFixtureEntity $product;
410410
})
411-
->mountWith(['product' => $product])
411+
->mountWith(['product' => $product->_real()])
412412
->beforeHydration(function () use ($product) {
413413
$product->_delete();
414414
})
@@ -749,9 +749,9 @@ public function onEntireEntityUpdated($oldValue)
749749
}];
750750

751751
yield 'Array with objects: (de)hydrates correctly' => [function () {
752-
$prod1 = factory(ProductFixtureEntity::class, ['name' => 'item1']);
752+
$prod1 = persist(ProductFixtureEntity::class, ['name' => 'item1']);
753753
$prod2 = new ProductFixtureEntity();
754-
$prod3 = factory(ProductFixtureEntity::class, ['name' => 'item3']);
754+
$prod3 = persist(ProductFixtureEntity::class, ['name' => 'item3']);
755755

756756
return HydrationTest::create(new DummyObjectWithObjects())
757757
->mountWith(['products' => [$prod1, $prod2, $prod3]])
@@ -971,10 +971,10 @@ public function mount()
971971
}];
972972

973973
yield 'Array with DTOs: fully writable allows anything to change' => [function () {
974-
$address1 = factory(Address::class, ['address' => '17 Arcadia Road', 'city' => 'London']);
975-
$address2 = factory(Address::class, ['address' => '4 Privet Drive', 'city' => 'Little Whinging']);
976-
$address3 = factory(Address::class, ['address' => '124 Conch St.', 'city' => 'Bikini Bottom']);
977-
$address4 = factory(Address::class, ['address' => '32 Windsor Gardens', 'city' => 'London']);
974+
$address1 = object(Address::class, ['address' => '17 Arcadia Road', 'city' => 'London']);
975+
$address2 = object(Address::class, ['address' => '4 Privet Drive', 'city' => 'Little Whinging']);
976+
$address3 = object(Address::class, ['address' => '124 Conch St.', 'city' => 'Bikini Bottom']);
977+
$address4 = object(Address::class, ['address' => '32 Windsor Gardens', 'city' => 'London']);
978978

979979
return HydrationTest::create(new class {
980980
/**
@@ -997,19 +997,19 @@ public function mount()
997997
->userUpdatesProps(['addresses' => [$address3, $address4]])
998998
->assertObjectAfterHydration(function (object $object) {
999999
self::assertEquals([
1000-
factory(Address::class, ['address' => '124 Conch St.', 'city' => 'Bikini Bottom']),
1001-
factory(Address::class, ['address' => '32 Windsor Gardens', 'city' => 'London']),
1000+
object(Address::class, ['address' => '124 Conch St.', 'city' => 'Bikini Bottom']),
1001+
object(Address::class, ['address' => '32 Windsor Gardens', 'city' => 'London']),
10021002
], $object->addresses);
10031003
});
10041004
}];
10051005

10061006
yield 'Array with DTOs: fully writable allows partial changes' => [function () {
1007-
$address1 = factory(Address::class, ['address' => '1600 Pennsylvania Avenue', 'city' => 'Washington DC']);
1008-
$address2 = factory(Address::class, ['address' => '221 B Baker St', 'city' => 'Birmingham']);
1007+
$address1 = object(Address::class, ['address' => '1600 Pennsylvania Avenue', 'city' => 'Washington DC']);
1008+
$address2 = object(Address::class, ['address' => '221 B Baker St', 'city' => 'Birmingham']);
10091009

10101010
return HydrationTest::create(new class {
10111011
/**
1012-
* @var Address[]
1012+
* @var \Symfony\UX\LiveComponent\Tests\Fixtures\Dto\Address[]
10131013
*/
10141014
#[LiveProp(writable: true, useSerializerForHydration: true)]
10151015
public array $addresses = [];
@@ -1028,8 +1028,8 @@ public function mount()
10281028
->userUpdatesProps(['addresses.1.city' => 'London'])
10291029
->assertObjectAfterHydration(function (object $object) {
10301030
self::assertEquals([
1031-
persist(Address::class, ['address' => '1600 Pennsylvania Avenue', 'city' => 'Washington DC']),
1032-
persist(Address::class, ['address' => '221 B Baker St', 'city' => 'London']),
1031+
object(Address::class, ['address' => '1600 Pennsylvania Avenue', 'city' => 'Washington DC']),
1032+
object(Address::class, ['address' => '221 B Baker St', 'city' => 'London']),
10331033
], $object->addresses);
10341034
});
10351035
}];
@@ -1043,14 +1043,14 @@ public function mount()
10431043
public array $dtos = [];
10441044
})
10451045
->mountWith(['dtos' => [
1046-
factory(HoldsArrayOfDtos::class, ['addresses' => [
1047-
factory(Address::class, ['address' => '742 Evergreen Terrace', 'city' => 'Boston']),
1048-
factory(Address::class, ['address' => 'Apartment 5A, 129 West 81st Street', 'city' => 'New York']),
1049-
factory(Address::class, ['address' => '52 Festive Road', 'city' => 'London']),
1046+
object(HoldsArrayOfDtos::class, ['addresses' => [
1047+
object(Address::class, ['address' => '742 Evergreen Terrace', 'city' => 'Boston']),
1048+
object(Address::class, ['address' => 'Apartment 5A, 129 West 81st Street', 'city' => 'New York']),
1049+
object(Address::class, ['address' => '52 Festive Road', 'city' => 'London']),
10501050
]]),
1051-
factory(HoldsArrayOfDtos::class, ['addresses' => [
1052-
factory(Address::class, ['address' => '698 Sycamore Road', 'city' => 'San Pueblo']),
1053-
factory(Address::class, ['address' => 'Madison Square Garden', 'city' => 'Chicago']),
1051+
object(HoldsArrayOfDtos::class, ['addresses' => [
1052+
object(Address::class, ['address' => '698 Sycamore Road', 'city' => 'San Pueblo']),
1053+
object(Address::class, ['address' => 'Madison Square Garden', 'city' => 'Chicago']),
10541054
]]),
10551055
]])
10561056
->assertDehydratesTo(['dtos' => [
@@ -1071,19 +1071,19 @@ public function mount()
10711071
->userUpdatesProps([
10721072
'dtos.0.addresses.0.city' => 'Springfield',
10731073
'dtos.1.addresses.1.address' => '1060 West Addison Street',
1074-
'dtos.1.addresses.1' => factory(Address::class, ['address' => '10 Downing Street', 'city' => 'London']),
1074+
'dtos.1.addresses.1' => object(Address::class, ['address' => '10 Downing Street', 'city' => 'London']),
10751075
])
10761076
->assertObjectAfterHydration(function (object $object) {
10771077
self::assertEquals(
10781078
[
1079-
persist(HoldsArrayOfDtos::class, ['addresses' => [
1080-
factory(Address::class, ['address' => '742 Evergreen Terrace', 'city' => 'Springfield']),
1081-
factory(Address::class, ['address' => 'Apartment 5A, 129 West 81st Street', 'city' => 'New York']),
1082-
factory(Address::class, ['address' => '52 Festive Road', 'city' => 'London']),
1079+
object(HoldsArrayOfDtos::class, ['addresses' => [
1080+
object(Address::class, ['address' => '742 Evergreen Terrace', 'city' => 'Springfield']),
1081+
object(Address::class, ['address' => 'Apartment 5A, 129 West 81st Street', 'city' => 'New York']),
1082+
object(Address::class, ['address' => '52 Festive Road', 'city' => 'London']),
10831083
]]),
1084-
persist(HoldsArrayOfDtos::class, ['addresses' => [
1085-
factory(Address::class, ['address' => '698 Sycamore Road', 'city' => 'San Pueblo']),
1086-
factory(Address::class, ['address' => '10 Downing Street', 'city' => 'London']),
1084+
object(HoldsArrayOfDtos::class, ['addresses' => [
1085+
object(Address::class, ['address' => '698 Sycamore Road', 'city' => 'San Pueblo']),
1086+
object(Address::class, ['address' => '10 Downing Street', 'city' => 'London']),
10871087
]]),
10881088
],
10891089
$object->dtos

0 commit comments

Comments
 (0)