fix: Task 6 review round 1 - admin label overlap, heading default level, structure deny-list, row widths (S41)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01At3V6SjwbMe6eMzVGW3Hs7
This commit is contained in:
@@ -297,6 +297,27 @@ final class DiviWriteAbilitiesTest extends TestCase
|
||||
self::assertSame([], $this->saved);
|
||||
}
|
||||
|
||||
/** Ruling S41: a column width change must still fill its row exactly. */
|
||||
public function testUpdateChecksTheRowWidths(): void
|
||||
{
|
||||
$sizing = static fn (string $width): array => ['module.decoration.sizing' => ['desktop' => ['flexType' => $width]]];
|
||||
|
||||
$broken = $this->update()->execute(['post_id' => 7, 'tree_rev' => $this->treeRev(), 'changes' => [
|
||||
['id' => 's0.r0.c0', 'attrs' => $sizing('12_24')],
|
||||
]]);
|
||||
self::assertSame('lit_validation_failed', $broken->get_error_code());
|
||||
self::assertArrayHasKey('changes[0].attrs.module.decoration.sizing', self::clientError($broken)['fields']);
|
||||
self::assertSame([], $this->saved);
|
||||
|
||||
$result = $this->update()->execute(['post_id' => 7, 'tree_rev' => $this->treeRev(), 'changes' => [
|
||||
['id' => 's0.r0.c0', 'attrs' => $sizing('12_24')],
|
||||
['id' => 's0.r0.c1', 'attrs' => $sizing('12_24')],
|
||||
]]);
|
||||
self::assertTrue($result['ok'], (string) json_encode($result));
|
||||
self::assertCount(1, $this->saved);
|
||||
self::assertStringContainsString('"flexType":"12_24"}}}}},"builderVersion":"5.2.1"} --><!-- wp:divi/image', $this->saved[0]);
|
||||
}
|
||||
|
||||
/** Ruling S7: builder-only paths are refused for users without unfiltered_html – visible to the client. */
|
||||
public function testBuilderOnlyPathsAreRefusedForEditors(): void
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user