Skip to content

Commit c3aad43

Browse files
authored
fix: resolve intermittent menu test failures and translation display issues (#8)
1 parent 4a9c0c8 commit c3aad43

3 files changed

Lines changed: 26 additions & 13 deletions

File tree

src/Models/Page.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,18 @@
77
use Illuminate\Database\Eloquent\Model;
88
use Illuminate\Database\Eloquent\Relations\BelongsTo;
99
use Illuminate\Database\Eloquent\SoftDeletes;
10+
use Spatie\Translatable\HasTranslations;
1011

1112
class Page extends Model
1213
{
13-
use HasFactory, SoftDeletes;
14+
use HasFactory, HasTranslations, SoftDeletes;
1415

1516
protected $table = 'cms_pages';
1617

18+
public array $translatable = [
19+
'title',
20+
];
21+
1722
protected $fillable = [
1823
'title',
1924
'section_id',

src/Models/Section.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,25 @@
77
use Illuminate\Database\Eloquent\Factories\HasFactory;
88
use Illuminate\Database\Eloquent\Model;
99
use Illuminate\Database\Eloquent\SoftDeletes;
10+
use Spatie\Translatable\HasTranslations;
1011

1112
class Section extends Model
1213
{
13-
use HasFactory, SoftDeletes;
14+
use HasFactory, HasTranslations, SoftDeletes;
1415

1516
protected $table = 'cms_sections';
1617

17-
protected $casts = [
18-
'type' => SectionType::class,
18+
public array $translatable = [
19+
'name',
1920
];
2021

22+
protected function casts(): array
23+
{
24+
return [
25+
'type' => SectionType::class,
26+
];
27+
}
28+
2129
public function getFillable()
2230
{
2331
$attr = [

tests/Unit/MenuItemTest.php

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535

3636
it('can have parent and children relationships', function () {
3737
$menu = Menu::factory()->create();
38-
$parent = Item::factory()->create(['menu_id' => $menu->id]);
39-
$child = Item::factory()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]);
38+
$parent = Item::factory()->active()->create(['menu_id' => $menu->id]);
39+
$child = Item::factory()->active()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]);
4040

4141
$childWithParent = Item::withoutGlobalScopes()->with('parent')->find($child->id);
4242
expect($childWithParent->parent)->toBeInstanceOf(Item::class)
@@ -195,8 +195,8 @@
195195

196196
it('can get tree formatted name', function () {
197197
$menu = Menu::factory()->create();
198-
$parent = Item::factory()->create(['menu_id' => $menu->id, 'label' => 'Parent']);
199-
$child = Item::factory()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id, 'label' => 'Child']);
198+
$parent = Item::factory()->active()->create(['menu_id' => $menu->id, 'label' => 'Parent']);
199+
$child = Item::factory()->active()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id, 'label' => 'Child']);
200200

201201
$parentFormatted = $parent->getTreeFormattedName();
202202
$childFormatted = $child->getTreeFormattedName();
@@ -207,11 +207,11 @@
207207

208208
it('can get full path', function () {
209209
$menu = Menu::factory()->create();
210-
$parent = Item::factory()->create([
210+
$parent = Item::factory()->active()->create([
211211
'menu_id' => $menu->id,
212212
'label' => ['en' => 'Parent Label'],
213213
]);
214-
$child = Item::factory()->create([
214+
$child = Item::factory()->active()->create([
215215
'menu_id' => $menu->id,
216216
'parent_id' => $parent->id,
217217
'label' => ['en' => 'Child Label'],
@@ -236,9 +236,9 @@
236236

237237
it('deleting parent item cascades to delete children', function () {
238238
$menu = Menu::factory()->create();
239-
$parent = Item::factory()->create(['menu_id' => $menu->id]);
240-
$child1 = Item::factory()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]);
241-
$child2 = Item::factory()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]);
239+
$parent = Item::factory()->active()->create(['menu_id' => $menu->id]);
240+
$child1 = Item::factory()->active()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]);
241+
$child2 = Item::factory()->active()->create(['menu_id' => $menu->id, 'parent_id' => $parent->id]);
242242

243243
expect(Item::withoutGlobalScopes()->where('parent_id', $parent->id)->count())->toBe(2);
244244
expect($child1->trashed())->toBeFalse();

0 commit comments

Comments
 (0)