fix: Variablen-Detach meldet verbleibende eingebettete Verweise und lehnt Werte mit Verweis, Markup oder leerem Inhalt ab

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Jan-Niclas Loosen
2026-10-19 14:19:41 +02:00
co-authored by Claude Sonnet 5.5
parent e951cc1353
commit 62f8465e60
9 changed files with 303 additions and 35 deletions
@@ -12,6 +12,7 @@ use LIT\MCP\Integrations\Divi\BlockTree\Parser;
use LIT\MCP\Integrations\Divi\BlockTree\Serializer;
use LIT\MCP\Integrations\Divi\Design\NodeRewrite;
use LIT\MCP\Integrations\Divi\Design\TreeRewrite;
use LIT\MCP\Integrations\Divi\Design\VariableDetachRewrite;
use LIT\MCP\Tests\Unit\TestCase;
final class TreeRewriteTest extends TestCase
@@ -134,4 +135,22 @@ final class TreeRewriteTest extends TestCase
$result['skipped']
);
}
public function testAReportsLeftoversStrategyListsUnchangedBlocksAsSkipped(): void
{
$embedded = 'Ab ' . VariableDetachRewriteTest::ref('gvid-radius0001') . ' Rundung';
$text = static fn (string $value): string => '<!-- wp:divi/text ' . \LIT\MCP\Integrations\Divi\BlockTree\Json::encode(
['content' => ['innerContent' => ['desktop' => ['value' => $value]]]]
) . ' /-->';
$document = self::document(
$text($embedded) . $text(VariableDetachRewriteTest::ref('gvid-radius0001')) . '<!-- wp:divi/text /-->'
);
$result = (new TreeRewrite(new VariableDetachRewrite('gvid-radius0001', '8px', 'numbers')))
->apply(NodeIndex::build($document));
self::assertSame(['s0.r0.c0.m1'], array_column($result['changed'], 'id'));
self::assertSame(['s0.r0.c0.m0'], array_column($result['skipped'], 'id'), 'embedded only: reported');
self::assertSame([], $result['warnings']);
}
}