test: shared Divi fixtures in tests/Support (T1)
- DiviFixtures: markup(), givenPost(), schema(), designSystem(), catalog(), dynamicContentRegistry(), maliciousRefs() - moved verbatim out of DiviPageLoaderTest, DesignSystemTest, ModuleCatalogTest, DynamicContentMapTest and VariableRefTest (its malicious() provider now returns maliciousRefs()). - ComposeFixture moves to tests/Support. - DiviWriterFixture: modules(), designReader(), composition(), a recording saver(), log() and writer(&$saved, &$failures, unfiltered, loader) for the five tests that wired the Divi write stack by hand. No test cases or assertions changed (1397 / 5834). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,26 +6,19 @@ namespace LIT\MCP\Tests\Unit\Integrations\Divi\Pages;
|
||||
|
||||
use Brain\Monkey\Functions;
|
||||
use LIT\MCP\Abilities\Rev;
|
||||
use LIT\MCP\ChangeLog\ChangeLog;
|
||||
use LIT\MCP\Integrations\Divi\BlockTree\AttrMap;
|
||||
use LIT\MCP\Integrations\Divi\BlockTree\NodeIndex;
|
||||
use LIT\MCP\Integrations\Divi\BlockTree\Parser;
|
||||
use LIT\MCP\Integrations\Divi\Design\DesignSystemReader;
|
||||
use LIT\MCP\Integrations\Divi\Pages\DiviComposition;
|
||||
use LIT\MCP\Integrations\Divi\Pages\DiviDeleteAbility;
|
||||
use LIT\MCP\Integrations\Divi\Pages\DiviDuplicateNodeAbility;
|
||||
use LIT\MCP\Integrations\Divi\Pages\DiviInsertAbility;
|
||||
use LIT\MCP\Integrations\Divi\Pages\DiviMoveAbility;
|
||||
use LIT\MCP\Integrations\Divi\Pages\DiviPageLoader;
|
||||
use LIT\MCP\Integrations\Divi\Pages\DiviSaver;
|
||||
use LIT\MCP\Integrations\Divi\Pages\DiviUpdateAbility;
|
||||
use LIT\MCP\Integrations\Divi\Pages\DiviWriter;
|
||||
use LIT\MCP\Integrations\Divi\Schema\DiviModules;
|
||||
use LIT\MCP\Tests\Unit\Integrations\Divi\Compose\ComposeFixture;
|
||||
use LIT\MCP\Tests\Unit\Integrations\Divi\Design\DesignSystemTest;
|
||||
use LIT\MCP\Tests\Unit\Integrations\Divi\Schema\ModuleCatalogTest;
|
||||
use LIT\MCP\Tests\Support\DiviFixtures;
|
||||
use LIT\MCP\Tests\Support\DiviWriterFixture;
|
||||
use LIT\MCP\Tests\Unit\TestCase;
|
||||
use Mockery;
|
||||
use WP_Error;
|
||||
use WP_Post;
|
||||
|
||||
@@ -42,34 +35,10 @@ final class DiviWriteAbilitiesTest extends TestCase
|
||||
protected function setUp(): void
|
||||
{
|
||||
parent::setUp();
|
||||
$this->original = DiviPageLoaderTest::fixture('synthetic-basic.html');
|
||||
$this->post = DiviPageLoaderTest::givenPost($this->original);
|
||||
$this->original = DiviFixtures::markup('synthetic-basic.html');
|
||||
$this->post = DiviFixtures::givenPost($this->original);
|
||||
Functions\when('get_preview_post_link')->justReturn('https://kunde.test/?page_id=7&preview=true');
|
||||
|
||||
$modules = Mockery::mock(DiviModules::class);
|
||||
$modules->allows('catalog')->andReturn(ModuleCatalogTest::sampleCatalog());
|
||||
$modules->allows('builderVersion')->andReturn('5.2.1');
|
||||
$design = Mockery::mock(DesignSystemReader::class);
|
||||
$design->allows('read')->andReturn(DesignSystemTest::sample());
|
||||
$composition = new DiviComposition($modules, $design, ComposeFixture::sanitizer(), ComposeFixture::media());
|
||||
|
||||
$saver = Mockery::mock(DiviSaver::class);
|
||||
$saver->allows('save')->andReturnUsing(function (WP_Post $post, string $content): array {
|
||||
$this->saved[] = $content;
|
||||
$post->post_content = $content;
|
||||
|
||||
return ['revision_id' => 811, 'warnings' => []];
|
||||
});
|
||||
$log = Mockery::mock(ChangeLog::class);
|
||||
$log->allows('record')->andReturn(4711);
|
||||
|
||||
$this->writer = new DiviWriter(
|
||||
new DiviPageLoader(DiviPageLoaderTest::schema()),
|
||||
$saver,
|
||||
$log,
|
||||
$design,
|
||||
$composition
|
||||
);
|
||||
$this->writer = DiviWriterFixture::writer($this->saved);
|
||||
}
|
||||
|
||||
private function treeRev(): string
|
||||
@@ -274,7 +243,7 @@ final class DiviWriteAbilitiesTest extends TestCase
|
||||
/** StructureRules apply on move: a module directly into a section, or into a specialty column. */
|
||||
public function testMoveRefusedByStructureRules(): void
|
||||
{
|
||||
$mixed = DiviPageLoaderTest::fixture('synthetic-mixed.html');
|
||||
$mixed = DiviFixtures::markup('synthetic-mixed.html');
|
||||
$this->post->post_content = $mixed;
|
||||
$treeRev = Rev::of($mixed);
|
||||
|
||||
@@ -342,7 +311,7 @@ final class DiviWriteAbilitiesTest extends TestCase
|
||||
/** An opaque/global module is removed as a whole – it never gets descended into. */
|
||||
public function testDeleteRemovesAnOpaqueGlobalModuleAsAWhole(): void
|
||||
{
|
||||
$mixed = DiviPageLoaderTest::fixture('synthetic-mixed.html');
|
||||
$mixed = DiviFixtures::markup('synthetic-mixed.html');
|
||||
$this->post->post_content = $mixed;
|
||||
$globalRow = '<!-- wp:divi/row {"globalModule":"913","module":{"meta":{"adminLabel":{"desktop":{"value":'
|
||||
. '"Globale Zeile"}}}}} --><!-- wp:divi/column {"builderVersion":"5.2.1"} --><!-- wp:divi/text '
|
||||
@@ -360,7 +329,7 @@ final class DiviWriteAbilitiesTest extends TestCase
|
||||
|
||||
public function testDeletingTheLastChildLeavesAValidTree(): void
|
||||
{
|
||||
$mixed = DiviPageLoaderTest::fixture('synthetic-mixed.html');
|
||||
$mixed = DiviFixtures::markup('synthetic-mixed.html');
|
||||
$this->post->post_content = $mixed;
|
||||
|
||||
$result = $this->delete()->execute([
|
||||
@@ -443,7 +412,7 @@ final class DiviWriteAbilitiesTest extends TestCase
|
||||
/** A global module copy stays a byte-identical reference (read-only nodes move/duplicate as a whole). */
|
||||
public function testDuplicateGlobalModuleCopyIsAByteIdenticalReference(): void
|
||||
{
|
||||
$mixed = DiviPageLoaderTest::fixture('synthetic-mixed.html');
|
||||
$mixed = DiviFixtures::markup('synthetic-mixed.html');
|
||||
$this->post->post_content = $mixed;
|
||||
$globalRow = '<!-- wp:divi/row {"globalModule":"913","module":{"meta":{"adminLabel":{"desktop":{"value":'
|
||||
. '"Globale Zeile"}}}}} --><!-- wp:divi/column {"builderVersion":"5.2.1"} --><!-- wp:divi/text '
|
||||
@@ -528,7 +497,7 @@ final class DiviWriteAbilitiesTest extends TestCase
|
||||
|
||||
public function testReadOnlyNodesCannotBeUpdated(): void
|
||||
{
|
||||
$this->post->post_content = DiviPageLoaderTest::fixture('synthetic-mixed.html');
|
||||
$this->post->post_content = DiviFixtures::markup('synthetic-mixed.html');
|
||||
|
||||
$result = $this->update()->execute([
|
||||
'post_id' => 7,
|
||||
|
||||
Reference in New Issue
Block a user