Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
52 lines
2.1 KiB
PHP
52 lines
2.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace LIT\MCP\Tests\Unit\Integrations\Divi\Design;
|
|
|
|
use LIT\MCP\Integrations\Divi\Design\DesignSystemWriter;
|
|
use LIT\MCP\Integrations\Divi\Release\Call;
|
|
use LIT\MCP\Integrations\Divi\Release\DiviAdapters;
|
|
use LIT\MCP\Integrations\Divi\Release\DiviLocked;
|
|
use LIT\MCP\Integrations\Divi\Release\Manifest;
|
|
use LIT\MCP\Integrations\Divi\Release\ReleaseGate;
|
|
use LIT\MCP\Integrations\Divi\Release\ReleaseState;
|
|
use LIT\MCP\Integrations\Divi\Release\ReleaseStatus;
|
|
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(Manifest::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()',
|
|
'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 => new ReleaseStatus(ReleaseState::Untested, '5.16.0'));
|
|
|
|
$this->expectException(DiviLocked::class);
|
|
|
|
(new DesignSystemWriter())->savePresets(['module' => [], 'group' => []], false);
|
|
}
|
|
|
|
public function testWithoutDiviNobodyUsesTheVisualBuilder(): void
|
|
{
|
|
self::assertFalse((new DesignSystemWriter())->canUseVisualBuilder());
|
|
}
|
|
}
|