feat(cache): WP Super Cache über den Kompatibilitätskern anbinden
SuperCacheFeature, SuperCacheCompatibility (LockOnFailure, getestet 3.1.5, Version aus dem Plugin-Header) und SuperCacheIntegration ohne Tools. Der SuperCacheListener sammelt Änderungen über lit_mcp_changed und leert einmal am Request-Ende: einen Beitrag per wp_cache_post_edit, mehrere Beiträge oder seitenweite Änderungen per wp_cache_clear_cache (Multisite: eigener Blog). Komplett-Purges höchstens alle 30 s, mit genau einem Nachlauf per WP-Cron. Freigabe-Einträge leeren nichts. Uninstaller räumt Optionen, Transient und Cron-Hook ab; Reiter und lit-site-status zeigen das Profil automatisch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c383b99e7d
commit
05bf890481
@@ -13,6 +13,7 @@ use LIT\MCP\Admin\LogTab;
|
||||
use LIT\MCP\ChangeLog\ChangeLogCleanup;
|
||||
use LIT\MCP\ChangeLog\ChangeLogInstaller;
|
||||
use LIT\MCP\Integrations\Divi\Release\ReleaseResolver;
|
||||
use LIT\MCP\Integrations\SuperCache\SuperCacheListener;
|
||||
use LIT\MCP\Limits;
|
||||
use LIT\MCP\Uninstaller;
|
||||
use LIT\MCP\Updater\RecheckOnInstall;
|
||||
@@ -44,7 +45,11 @@ final class UninstallerTest extends TestCase
|
||||
$transients[] = $transient;
|
||||
return true;
|
||||
});
|
||||
Functions\expect('wp_clear_scheduled_hook')->once()->with(ChangeLogCleanup::HOOK);
|
||||
$hooks = [];
|
||||
Functions\when('wp_clear_scheduled_hook')->alias(static function (string $hook) use (&$hooks): int {
|
||||
$hooks[] = $hook;
|
||||
return 0;
|
||||
});
|
||||
// Review m-8: the Protokoll screen option is user meta (network-wide): removed once.
|
||||
Functions\expect('delete_metadata')->once()->with('user', 0, LogTab::PER_PAGE_OPTION, '', true);
|
||||
$deleted = [];
|
||||
@@ -55,12 +60,17 @@ final class UninstallerTest extends TestCase
|
||||
|
||||
Uninstaller::run();
|
||||
|
||||
self::assertSame([ConnectionStatus::ENDPOINT_TRANSIENT, ReleaseResolver::CACHE], $transients);
|
||||
self::assertSame(
|
||||
[ConnectionStatus::ENDPOINT_TRANSIENT, ReleaseResolver::CACHE, SuperCacheListener::PURGED_AT],
|
||||
$transients
|
||||
);
|
||||
self::assertSame([ChangeLogCleanup::HOOK, SuperCacheListener::TRAILING_HOOK], $hooks);
|
||||
self::assertSame(
|
||||
[
|
||||
Access::OPTION, ExposurePolicy::OPTION, Limits::OPTION, ChangeLogInstaller::VERSION_OPTION,
|
||||
'lit_mcp_divi_releases', 'lit_mcp_divi_check_report', 'lit_mcp_divi_check_lock',
|
||||
'lit_mcp_pods_releases', 'lit_mcp_pods_check_report', 'lit_mcp_pods_check_lock',
|
||||
'lit_mcp_wpsc_releases', 'lit_mcp_wpsc_check_report', 'lit_mcp_wpsc_check_lock',
|
||||
'lit_mcp_snapshots_colors', 'lit_mcp_snapshots_variables', 'lit_mcp_snapshots_presets',
|
||||
'lit_mcp_snapshots_theme_options', 'lit_mcp_snapshots_custom_css',
|
||||
DesignLock::option('colors'), DesignLock::option('variables'), DesignLock::option('presets'), DesignLock::option('custom_css'),
|
||||
@@ -86,7 +96,11 @@ final class UninstallerTest extends TestCase
|
||||
$transients[] = $transient;
|
||||
return true;
|
||||
});
|
||||
Functions\expect('wp_clear_scheduled_hook')->twice()->with(ChangeLogCleanup::HOOK);
|
||||
$hooks = [];
|
||||
Functions\when('wp_clear_scheduled_hook')->alias(static function (string $hook) use (&$hooks): int {
|
||||
$hooks[] = $hook;
|
||||
return 0;
|
||||
});
|
||||
Functions\expect('delete_metadata')->once()->with('user', 0, LogTab::PER_PAGE_OPTION, '', true);
|
||||
Functions\when('delete_option')->justReturn(true);
|
||||
|
||||
@@ -94,10 +108,17 @@ final class UninstallerTest extends TestCase
|
||||
|
||||
self::assertSame(
|
||||
[
|
||||
ConnectionStatus::ENDPOINT_TRANSIENT, ReleaseResolver::CACHE,
|
||||
ConnectionStatus::ENDPOINT_TRANSIENT, ReleaseResolver::CACHE,
|
||||
ConnectionStatus::ENDPOINT_TRANSIENT, ReleaseResolver::CACHE, SuperCacheListener::PURGED_AT,
|
||||
ConnectionStatus::ENDPOINT_TRANSIENT, ReleaseResolver::CACHE, SuperCacheListener::PURGED_AT,
|
||||
],
|
||||
$transients
|
||||
);
|
||||
self::assertSame(
|
||||
[
|
||||
ChangeLogCleanup::HOOK, SuperCacheListener::TRAILING_HOOK,
|
||||
ChangeLogCleanup::HOOK, SuperCacheListener::TRAILING_HOOK,
|
||||
],
|
||||
$hooks
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user