diff --git a/src/Models/Page.php b/src/Models/Page.php index f59a7d2..d6b4c56 100644 --- a/src/Models/Page.php +++ b/src/Models/Page.php @@ -7,13 +7,18 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\SoftDeletes; +use Spatie\Translatable\HasTranslations; class Page extends Model { - use HasFactory, SoftDeletes; + use HasFactory, HasTranslations, SoftDeletes; protected $table = 'cms_pages'; + public array $translatable = [ + 'title', + ]; + protected $fillable = [ 'title', 'section_id', diff --git a/src/Models/Section.php b/src/Models/Section.php index e88d01d..8f534ab 100644 --- a/src/Models/Section.php +++ b/src/Models/Section.php @@ -7,17 +7,25 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; +use Spatie\Translatable\HasTranslations; class Section extends Model { - use HasFactory, SoftDeletes; + use HasFactory, HasTranslations, SoftDeletes; protected $table = 'cms_sections'; - protected $casts = [ - 'type' => SectionType::class, + public array $translatable = [ + 'name', ]; + protected function casts(): array + { + return [ + 'type' => SectionType::class, + ]; + } + public function getFillable() { $attr = [ diff --git a/tests/Unit/MenuItemTest.php b/tests/Unit/MenuItemTest.php index 54ff0a4..81c84a4 100644 --- a/tests/Unit/MenuItemTest.php +++ b/tests/Unit/MenuItemTest.php @@ -35,8 +35,8 @@ it('can have parent and children relationships', function () { $menu = Menu::factory()->create(); - $parent = Item::factory()->create(['menu_id' => $menu->id]); - $child = Item::factory()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]); + $parent = Item::factory()->active()->create(['menu_id' => $menu->id]); + $child = Item::factory()->active()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]); $childWithParent = Item::withoutGlobalScopes()->with('parent')->find($child->id); expect($childWithParent->parent)->toBeInstanceOf(Item::class) @@ -195,8 +195,8 @@ it('can get tree formatted name', function () { $menu = Menu::factory()->create(); - $parent = Item::factory()->create(['menu_id' => $menu->id, 'label' => 'Parent']); - $child = Item::factory()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id, 'label' => 'Child']); + $parent = Item::factory()->active()->create(['menu_id' => $menu->id, 'label' => 'Parent']); + $child = Item::factory()->active()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id, 'label' => 'Child']); $parentFormatted = $parent->getTreeFormattedName(); $childFormatted = $child->getTreeFormattedName(); @@ -207,11 +207,11 @@ it('can get full path', function () { $menu = Menu::factory()->create(); - $parent = Item::factory()->create([ + $parent = Item::factory()->active()->create([ 'menu_id' => $menu->id, 'label' => ['en' => 'Parent Label'], ]); - $child = Item::factory()->create([ + $child = Item::factory()->active()->create([ 'menu_id' => $menu->id, 'parent_id' => $parent->id, 'label' => ['en' => 'Child Label'], @@ -236,9 +236,9 @@ it('deleting parent item cascades to delete children', function () { $menu = Menu::factory()->create(); - $parent = Item::factory()->create(['menu_id' => $menu->id]); - $child1 = Item::factory()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]); - $child2 = Item::factory()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]); + $parent = Item::factory()->active()->create(['menu_id' => $menu->id]); + $child1 = Item::factory()->active()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]); + $child2 = Item::factory()->active()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]); expect(Item::withoutGlobalScopes()->where('parent_id', $parent->id)->count())->toBe(2); expect($child1->trashed())->toBeFalse();