fix: library IDs stay hidden without library access (ruling P13)
Outline, node-get, write outlines, the render summary and replace-text's opaque-node match name no library ID unless the library group is visible and the user has divi_library; read-only still names them. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,8 @@ use LIT\MCP\Abilities\Rev;
|
||||
use LIT\MCP\Integrations\Divi\BlockTree\NodeIndex;
|
||||
use LIT\MCP\Integrations\Divi\BlockTree\Parser;
|
||||
use LIT\MCP\Tests\Support\DiviFixtures;
|
||||
use LIT\MCP\Tests\Support\DiviWriterFixture;
|
||||
use LIT\MCP\Tests\Support\LibraryFixtures;
|
||||
use WP_Error;
|
||||
|
||||
final class DiviUpdateAbilityTest extends DiviWriteAbilityTestCase
|
||||
@@ -240,4 +242,24 @@ final class DiviUpdateAbilityTest extends DiviWriteAbilityTestCase
|
||||
self::assertStringContainsString('nur im Divi-Builder', $client['fields']['changes[0].attrs.module.decoration.attributes']);
|
||||
self::assertSame([], $this->saved);
|
||||
}
|
||||
|
||||
/** Ruling P13: the outline of a write result names library IDs only with library access. */
|
||||
public function testTheWriteOutlineNamesLibraryIdsOnlyWithLibraryAccess(): void
|
||||
{
|
||||
$content = DiviFixtures::markup('stage3/page--globale-instanzen.html');
|
||||
$changes = [['id' => 's0.r0.c0.m0', 'set' => ['text' => 'Termin buchen']]];
|
||||
|
||||
$hidden = $this->updateOn($content, $changes);
|
||||
$failures = [];
|
||||
$this->writer = DiviWriterFixture::writer($this->saved, $failures, false, LibraryFixtures::loader());
|
||||
$shown = $this->updateOn($content, $changes);
|
||||
|
||||
self::assertTrue($hidden['ok']);
|
||||
self::assertStringContainsString('s0.r0.c0.g0 text', (string) $hidden['outline']);
|
||||
self::assertStringContainsString('(nur lesbar)', (string) $hidden['outline']);
|
||||
self::assertStringNotContainsString('1059', (string) json_encode($hidden));
|
||||
self::assertStringNotContainsString('1058', (string) json_encode($hidden));
|
||||
self::assertStringContainsString('[global 1059]', (string) $shown['outline']);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user