feat: Divi-Adapter sperren je Fähigkeit – ReleaseGate::feature/assertFeature(s), DiviLocked und Ablehnung nennen die betroffenen Fähigkeiten (D6), DiviSaver prüft Seiten schreiben und die Fähigkeit des Speicherbereichs (D5), DesignArea::feature; Test-Standard alle Fähigkeiten freigegeben
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
c4efeb3ba4
commit
e387d8d29e
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace LIT\MCP\Tests\Unit\Integrations\Divi\Release;
|
||||
|
||||
use LIT\MCP\Abilities\ToolRefusal;
|
||||
use LIT\MCP\Integrations\Divi\Release\DiviFeature;
|
||||
use LIT\MCP\Integrations\Divi\Release\DiviLocked;
|
||||
use LIT\MCP\Integrations\Divi\Release\ReleaseState;
|
||||
use LIT\MCP\Integrations\Divi\Release\ReleaseStatus;
|
||||
use LIT\MCP\Tests\Support\ReleaseMatrices;
|
||||
use LIT\MCP\Tests\Unit\TestCase;
|
||||
|
||||
final class DiviLockedTest extends TestCase
|
||||
{
|
||||
public function testWithFeaturesTheErrorIsTheRefusalOfThoseFeatures(): void
|
||||
{
|
||||
$status = ReleaseMatrices::status([DiviFeature::PresetWrite], ReleaseState::Incompatible);
|
||||
$locked = new DiviLocked($status, [DiviFeature::PresetWrite]);
|
||||
|
||||
self::assertInstanceOf(ToolRefusal::class, $locked);
|
||||
self::assertSame('Divi 5.3.0 is incompatible for LIT MCP – preset-write refused', $locked->getMessage());
|
||||
self::assertEquals($status->refusalFor([DiviFeature::PresetWrite]), $locked->toError());
|
||||
$payload = self::assertToolError($locked->toError(), 'divi_incompatible');
|
||||
self::assertSame(['preset-write'], array_column($payload['features'], 'id'));
|
||||
}
|
||||
|
||||
public function testWithoutFeaturesTheErrorIsTheGeneralWriteLock(): void
|
||||
{
|
||||
$status = new ReleaseStatus(ReleaseState::Untested, '5.3.0');
|
||||
$locked = new DiviLocked($status);
|
||||
|
||||
self::assertSame('Divi 5.3.0 is untested for LIT MCP – write refused', $locked->getMessage());
|
||||
self::assertEquals($status->refusal(), $locked->toError());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user