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
@@ -12,6 +12,7 @@ use LIT\MCP\Admin\ConnectionStatus;
|
||||
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\Updater\RecheckOnInstall;
|
||||
use Mockery;
|
||||
@@ -41,7 +42,11 @@ final class UninstallTest 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, 'lit_mcp_log_per_page', '', true);
|
||||
$deleted = [];
|
||||
Functions\when('delete_option')->alias(static function (string $option) use (&$deleted): bool {
|
||||
@@ -55,6 +60,7 @@ final class UninstallTest extends TestCase
|
||||
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'),
|
||||
@@ -67,10 +73,17 @@ final class UninstallTest extends TestCase
|
||||
self::assertNotContains('wpmedia_mcp_oauth_rewrite_version', $deleted);
|
||||
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