Files
WP-LIT-MCP/tests/Unit/Integrations/Divi/Design/DesignSystemWriterTest.php
T
Jan-Niclas LoosenandClaude Opus 5.5 b511ef6348 refactor(compat): Prüfbausteine nach src/Compatibility, Matrix und ManifestCheck generisch
Requirement, Call, ConstantRequirement, Mirror, Problem, FeatureStatus, CompatibilityMatrix, Manifest, ManifestCheck sowie Fingerprints und LineDiff liegen jetzt im divi-freien Kern. Neu: GlobalRequirement, CompatibilityMatrix::fromProblems(), ManifestCheck-Option signatures, DiviManifestCheck::create() und DiviAreas. Divi-Verhalten unverändert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-06 12:03:30 +01:00

61 lines
2.4 KiB
PHP

<?php
declare(strict_types=1);
namespace LIT\MCP\Tests\Unit\Integrations\Divi\Design;
use LIT\MCP\Compatibility\ReleaseState;
use LIT\MCP\Integrations\Divi\Design\DesignSystemWriter;
use LIT\MCP\Compatibility\Call;
use LIT\MCP\Integrations\Divi\Release\DiviAdapters;
use LIT\MCP\Integrations\Divi\Release\DiviAreas;
use LIT\MCP\Integrations\Divi\Release\DiviLocked;
use LIT\MCP\Integrations\Divi\Release\ReleaseGate;
use LIT\MCP\Integrations\Divi\Release\ReleaseStatus;
use LIT\MCP\Tests\Support\ReleaseMatrices;
use LIT\MCP\Tests\Unit\TestCase;
final class DesignSystemWriterTest extends TestCase
{
public function testIsARegisteredDesignAdapterWithTheSyncMirror(): void
{
$manifest = DesignSystemWriter::manifest();
self::assertContains(DesignSystemWriter::class, DiviAdapters::CLASSES);
self::assertSame(DiviAreas::DESIGN, $manifest->area);
self::assertSame(
[
'GlobalPreset::get_data()', 'GlobalPreset::prepare_data()', 'GlobalPreset::validate_preset_count()',
'GlobalPreset::get_deleted_preset_ids()', 'GlobalPreset::remove_preset_from_legacy_option()',
'GlobalPreset::save_data()', 'Conversion::get_preset_attrs_mapping()', 'Conversion::get_preset_attrs()',
'GlobalPreset::get_group_preset_default_attr()', 'ModuleRegistration::get_module_settings()',
'UserRole::can_current_user_use_visual_builder()',
],
array_map(static fn (Call $call): string => $call->label(), $manifest->calls)
);
self::assertSame(['preset-sync'], array_map(static fn ($mirror): string => $mirror->id, $manifest->mirrors));
self::assertSame('GlobalPresetController', $manifest->mirrors[0]->class);
}
public function testWritesNeedAReleasedDivi(): void
{
ReleaseGate::useResolver(
static fn (): ReleaseStatus => ReleaseMatrices::uniform(ReleaseState::Untested, '5.16.0')
);
$this->expectException(DiviLocked::class);
(new DesignSystemWriter())->savePresets(['module' => [], 'group' => []], false);
}
public function testWithoutDiviNobodyUsesTheVisualBuilder(): void
{
self::assertFalse((new DesignSystemWriter())->canUseVisualBuilder());
}
public function testWithoutDiviAModuleHasNoGroups(): void
{
self::assertSame([], (new DesignSystemWriter())->groupsOf('divi/button'));
}
}