fix(audit L4): Restore-Planer für Farben, Variablen und Presets berechnen die Fundstellen (affected, P8a blocked_ids) für geänderte, entfernte und deaktivierte Einträge
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
4a8a889f93
commit
bd80ab1394
@@ -11,7 +11,10 @@ use LIT\MCP\Integrations\Divi\Design\GlobalVariablesAdapter;
|
||||
use LIT\MCP\Integrations\Divi\Design\VariableArea;
|
||||
use LIT\MCP\Integrations\Divi\Design\VariableBook;
|
||||
use LIT\MCP\Integrations\Divi\Design\VariableRestorePlanner;
|
||||
use LIT\MCP\Integrations\Divi\Design\ReferenceUsageQuery;
|
||||
use LIT\MCP\Integrations\Divi\Library\GlobalUsages;
|
||||
use LIT\MCP\Integrations\Divi\Release\DiviFeature;
|
||||
use LIT\MCP\Tests\Support\UsageFixture;
|
||||
use LIT\MCP\Tests\Unit\TestCase;
|
||||
use Mockery;
|
||||
|
||||
@@ -41,14 +44,14 @@ final class VariableRestorePlannerTest extends TestCase
|
||||
return ['numbers' => ['gvid-radius0001' => self::number('gvid-radius0001', 'Eckenradius', '4px')]];
|
||||
}
|
||||
|
||||
private static function planner(bool $manage = true): VariableRestorePlanner
|
||||
private static function planner(bool $manage = true, ?GlobalUsages $usages = null): VariableRestorePlanner
|
||||
{
|
||||
$writer = Mockery::mock(DesignSystemWriter::class);
|
||||
$writer->allows('canUseVisualBuilder')->andReturn(true);
|
||||
$variables = Mockery::mock(GlobalVariablesAdapter::class);
|
||||
$variables->allows('canManage')->andReturn($manage);
|
||||
|
||||
return new VariableRestorePlanner($writer, $variables);
|
||||
return new VariableRestorePlanner($writer, $variables, $usages ?? UsageFixture::none());
|
||||
}
|
||||
|
||||
public function testAreaFeaturesAndDesignArea(): void
|
||||
@@ -89,4 +92,19 @@ final class VariableRestorePlannerTest extends TestCase
|
||||
$plan->warnings
|
||||
);
|
||||
}
|
||||
|
||||
/** Audit L4: changed and archived variables are looked up; the plan carries the report for P8a. */
|
||||
public function testReportsThePagesUsingChangedOrArchivedVariables(): void
|
||||
{
|
||||
$usages = Mockery::mock(GlobalUsages::class);
|
||||
$usages->expects('reportFor')->once()->with(Mockery::on(
|
||||
static fn (mixed $query): bool => $query instanceof ReferenceUsageQuery
|
||||
&& $query->matches('gvid-radius0001') && $query->matches('gvid-neu0000001')
|
||||
))->andReturn(UsageFixture::blockedReport());
|
||||
|
||||
$plan = self::planner(true, $usages)->plan(self::current(), self::snapshot(), self::SNAPSHOT_ID);
|
||||
|
||||
self::assertInstanceOf(DesignPlan::class, $plan);
|
||||
self::assertTrue($plan->usages?->blocks());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user