Skip to content

Commit

Permalink
Improve Menu unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
bastianallgeier committed Feb 3, 2025
1 parent 10a871b commit 59675fb
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 86 deletions.
62 changes: 62 additions & 0 deletions tests/Panel/Ui/MenuItemTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,68 @@ public function testCall()
$this->assertSame('Test', $menuItem->text());
}

public function testCurrent()
{
$menuItem = new MenuItem(
icon: 'edit',
link: 'test',
text: 'Test',
);

$this->assertFalse($menuItem->current());

$menuItem = new MenuItem(
current: true,
icon: 'edit',
link: 'test',
text: 'Test',
);

$this->assertTrue($menuItem->current());
}

public function testDialog()
{
$menuItem = new MenuItem(
icon: 'edit',
dialog: 'test',
text: 'Test',
);

$this->assertSame('test', $menuItem->dialog());
}

public function testDisabled()
{
$menuItem = new MenuItem(
icon: 'edit',
link: 'test',
text: 'Test',
);

$this->assertFalse($menuItem->disabled());

$menuItem = new MenuItem(
disabled: true,
icon: 'edit',
link: 'test',
text: 'Test',
);

$this->assertTrue($menuItem->disabled());
}

public function testDrawer()
{
$menuItem = new MenuItem(
icon: 'edit',
drawer: 'test',
text: 'Test',
);

$this->assertSame('test', $menuItem->drawer());
}

/**
* @covers ::link
*/
Expand Down
92 changes: 6 additions & 86 deletions tests/Panel/Ui/MenuTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ public function testAreasConfigOptionClosure()
*/
public function testItem()
{
$menu = new Menu([], [], 'account');
$menu = new Menu();

$item = $menu->item(new Area(
id: 'account',
Expand All @@ -165,98 +165,18 @@ public function testItem()
menu: true
));

$this->assertSame([
'current' => true,
'icon' => 'account',
'link' => 'foo',
'text' => 'Foo'
], $item->toArray());
$this->assertInstanceOf(MenuItem::class, $item);
}

/**
* @covers ::item
*/
public function testItemDialog()
public function testItemWithoutArea()
{
$menu = new Menu([], [], 'account');

$item = $menu->item(new Area(
id: 'account',
link: 'foo',
label: 'Foo',
menu: ['dialog' => 'foo']
));

$this->assertSame([
'current' => true,
'dialog' => 'foo',
'icon' => 'account',
'text' => 'Foo'
], $item->toArray());
}

/**
* @covers ::item
*/
public function testItemMenu()
{
$menu = new Menu([], [], 'account');
$this->assertNull($menu->item(new Area(id: 'account')));
$this->assertNull($menu->item(new Area(id: 'account', menu: false)));
$this->assertNull($menu->item(new Area(id: 'account', menu: fn () => false)));

$test = $this;
$menu->item(new Area(id: 'account', menu: function ($areas, $permissions, $current) use ($test) {
$test->assertSame([], $areas);
$test->assertSame([], $permissions);
$test->assertSame('account', $current);
return false;
}));

$item = $menu->item(new Area(
id: 'account',
menu: 'disabled',
));
$this->assertTrue($item->disabled());
}

/**
* @covers ::item
*/
public function testItemNoPermission()
{
$menu = new Menu([], ['access' => ['account' => false]]);
$area = new Area(id: 'account');
$this->assertNull($menu->item($area));
}

/**
* @covers ::entry
*/
public function testItemMultiLanguage()
{
$menu = new Menu(
areas: [],
permissions: [],
current: 'account'
);

$item = $menu->item(new Area(
id: 'account',
link: 'foo',
label: [
'en' => 'My account',
'de' => 'Mein Account'
],
menu: true
));
$menu = new Menu();
$item = $menu->item(null);

$this->assertSame([
'current' => true,
'icon' => 'account',
'link' => 'foo',
'text' => 'My account'
], $item->toArray());
$this->assertNull($item);
}

/**
Expand Down

0 comments on commit 59675fb

Please sign in to comment.