feat(wpmc S4): Plugin::boot wires OptionsPage + TermMeta + Router + Redirect

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Vladimir Bryzgalov
2026-05-16 20:05:43 +05:00
parent eb84bb8274
commit 3da1db1ccc
3 changed files with 58 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
<?php
declare(strict_types=1);
namespace WPMultiCity\Tests;
use WPMultiCity\Plugin;
final class PluginBootS4Test extends TestCase
{
public function test_boot_wires_s4_registrations(): void
{
if (!class_exists('ACF', false)) {
eval('class ACF {}');
}
$plugin = Plugin::instance();
$reflection = new \ReflectionClass($plugin);
$prop = $reflection->getProperty('booted');
$prop->setValue($plugin, false);
$plugin->boot();
self::assertNotFalse(
has_action('acf/init', ['WPMultiCity\\OptionsPage', 'do_register']),
'boot() must register OptionsPage on acf/init'
);
self::assertNotFalse(
has_action('acf/init', ['WPMultiCity\\TermMeta', 'do_register']),
'boot() must register TermMeta on acf/init'
);
self::assertSame(
9999,
has_action('wp', ['WPMultiCity\\Router', 'route']),
'boot() must register Router on wp@9999'
);
self::assertSame(
9998,
has_action('wp', ['WPMultiCity\\Redirect', 'handle']),
'boot() must register Redirect on wp@9998'
);
}
}
+12
View File
@@ -68,6 +68,18 @@ final class PluginBootTest extends TestCase
\Brain\Monkey\Actions\expectAdded('init')
->with([\WPMultiCity\ShortcodeDmr::class, 'do_register'])
->once();
\Brain\Monkey\Actions\expectAdded('acf/init')
->with([\WPMultiCity\OptionsPage::class, 'do_register'])
->once();
\Brain\Monkey\Actions\expectAdded('acf/init')
->with([\WPMultiCity\TermMeta::class, 'do_register'])
->once();
\Brain\Monkey\Actions\expectAdded('wp')
->with([\WPMultiCity\Redirect::class, 'handle'], 9998)
->once();
\Brain\Monkey\Actions\expectAdded('wp')
->with([\WPMultiCity\Router::class, 'route'], 9999)
->once();
$plugin->boot();
$plugin->boot();