Skip to content

Commit abeef6f

Browse files
committed
wip
1 parent 1c1d539 commit abeef6f

File tree

3 files changed

+19
-11
lines changed

3 files changed

+19
-11
lines changed

tests/Integration/ORM/IsDatabaseModelTest.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use Carbon\Carbon;
88
use DateTimeImmutable;
9+
use Integration\ORM\Migrations\CreateCasterEnumType;
910
use Tempest\Database\Builder\ModelDefinition;
1011
use Tempest\Database\Exceptions\MissingRelation;
1112
use Tempest\Database\Exceptions\MissingValue;
@@ -506,15 +507,15 @@ public function test_two_way_casters_on_models(): void
506507

507508
new CasterModel(
508509
date: new DateTimeImmutable('2025-01-01 00:00:00'),
509-
array: ['a', 'b', 'c'],
510-
enum: CasterEnum::BAR,
510+
array_prop: ['a', 'b', 'c'],
511+
enum_prop: CasterEnum::BAR,
511512
)->save();
512513

513514
$model = CasterModel::select()->first();
514515

515516
$this->assertSame(new DateTimeImmutable('2025-01-01 00:00:00')->format('c'), $model->date->format('c'));
516-
$this->assertSame(['a', 'b', 'c'], $model->array);
517-
$this->assertSame(CasterEnum::BAR, $model->enum);
517+
$this->assertSame(['a', 'b', 'c'], $model->array_prop);
518+
$this->assertSame(CasterEnum::BAR, $model->enum_prop);
518519
}
519520

520521
public function test_find(): void

tests/Integration/ORM/Migrations/CreateCasterModelTable.php

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44

55
use Tempest\Database\DatabaseMigration;
66
use Tempest\Database\QueryStatement;
7+
use Tempest\Database\QueryStatements\CompoundStatement;
8+
use Tempest\Database\QueryStatements\CreateEnumTypeStatement;
79
use Tempest\Database\QueryStatements\CreateTableStatement;
10+
use Tempest\Database\QueryStatements\DropEnumTypeStatement;
811
use Tempest\Database\QueryStatements\DropTableStatement;
912
use Tests\Tempest\Integration\ORM\Models\CasterEnum;
1013
use Tests\Tempest\Integration\ORM\Models\CasterModel;
@@ -15,11 +18,15 @@ final class CreateCasterModelTable implements DatabaseMigration
1518

1619
public function up(): QueryStatement
1720
{
18-
return CreateTableStatement::forModel(CasterModel::class)
19-
->primary()
20-
->datetime('date')
21-
->array('array')
22-
->enum('enum', CasterEnum::class);
21+
return new CompoundStatement(
22+
new DropEnumTypeStatement(CasterEnum::class),
23+
new CreateEnumTypeStatement(CasterEnum::class),
24+
CreateTableStatement::forModel(CasterModel::class)
25+
->primary()
26+
->datetime('date')
27+
->array('array_prop')
28+
->enum('enum_prop', CasterEnum::class),
29+
);
2330
}
2431

2532
public function down(): QueryStatement

tests/Integration/ORM/Models/CasterModel.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ final class CasterModel
1111

1212
public function __construct(
1313
public DateTimeImmutable $date,
14-
public array $array,
15-
public CasterEnum $enum,
14+
public array $array_prop,
15+
public CasterEnum $enum_prop,
1616
) {}
1717
}

0 commit comments

Comments
 (0)