Files
server/tests/php/Unit/Module/CoreModuleTest.php
T
2026-07-27 00:48:11 -04:00

47 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace KTXT\Unit\Module;
use KTXC\Console\Event\EventsDebugCommand;
use KTXC\Module\Module;
use KTXC\Service\FirewallService;
use KTXF\Event\DeliveryMode;
use KTXF\Event\EventListenerRegistry;
use KTXF\Event\SecurityEvent;
use PHPUnit\Framework\Attributes\Test;
use PHPUnit\Framework\Attributes\TestDox;
use PHPUnit\Framework\TestCase;
final class CoreModuleTest extends TestCase
{
#[Test]
#[TestDox('Core boot registers owned listeners without resolving services')]
public function registersListeners(): void
{
$registry = new EventListenerRegistry();
$module = new Module($registry);
$module->boot();
$definitions = $registry->definitions();
self::assertCount(5, $definitions);
self::assertSame(['core'], array_values(array_unique(array_column($definitions, 'module'))));
self::assertSame(
FirewallService::class,
$registry->listeners(SecurityEvent::AUTH_FAILURE, DeliveryMode::Immediate)[0]->service,
);
self::assertFalse($registry->frozen());
}
#[Test]
#[TestDox('Core exposes the event registry debug command')]
public function exposesDebugCommand(): void
{
$module = new Module(new EventListenerRegistry());
self::assertContains(EventsDebugCommand::class, $module->registerCI());
}
}