Skip to content

Commit

Permalink
improvement
Browse files Browse the repository at this point in the history
  • Loading branch information
sethsandaru committed Apr 20, 2024
1 parent ba416d8 commit 5b30f0b
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/Services/Generators/ColumnsGenerator.php
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ protected function resolveColumnType(Column $column): string
return $type;
}

protected function getDateCasting(string $column): bool
protected function getDateCasting(string $column): string
{
if (in_array($column, ['created_at', 'updated_at', 'deleted_at'])) {
return Carbon::class;
Expand Down
34 changes: 34 additions & 0 deletions tests/Units/Generators/PropertyGeneratorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,38 @@ public function testNumericPostgresRenderFloat()

$this->assertStringContainsString('@property float $number', $generatedText);
}

public function testDatesCastColumns()
{
Schema::create('test_date_columns_table', function (Blueprint $table) {
$table->timestamps();
$table->softDeletes();
$table->timestamp('activated_at');
$table->timestamp('enabled_at');
$table->timestamp('no_cast_at')->nullable();
$table->date('incurred_date')->nullable();
$table->date('invoiced_date');
});

$columnGenerator = app(ColumnsGenerator::class);
$generatedText = $columnGenerator->generate(new class extends Model {
protected $table = 'test_date_columns_table';

protected $casts = [
'incurred_date' => 'date',
'activated_at' => 'datetime',
'invoiced_date' => 'immutable_date',
'enabled_at' => 'immutable_datetime',
];
});

$this->assertStringContainsString('@property Carbon\Carbon|null $created_at', $generatedText);
$this->assertStringContainsString('@property Carbon\Carbon|null $updated_at', $generatedText);
$this->assertStringContainsString('@property Carbon\Carbon|null $deleted_at', $generatedText);
$this->assertStringContainsString('@property Carbon\Carbon $activated_at', $generatedText);
$this->assertStringContainsString('@property Carbon\CarbonImmutable $enabled_at', $generatedText);
$this->assertStringContainsString('@property string|null $no_cast_at', $generatedText);
$this->assertStringContainsString('@property Carbon\Carbon|null $incurred_date', $generatedText);
$this->assertStringContainsString('@property Carbon\CarbonImmutable $invoiced_date', $generatedText);
}
}

0 comments on commit 5b30f0b

Please sign in to comment.