Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
33 lines
1.2 KiB
PHP
33 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace LIT\MCP\Tests\Unit\Integrations\Divi\Release;
|
|
|
|
use LIT\MCP\Integrations\Divi\Release\DiviFeature;
|
|
use LIT\MCP\Integrations\Divi\Release\FeatureStatus;
|
|
use LIT\MCP\Integrations\Divi\Release\ReleaseState;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class FeatureStatusTest extends TestCase
|
|
{
|
|
public function testOnlyAReleasedFeatureIsUsable(): void
|
|
{
|
|
self::assertTrue((new FeatureStatus(DiviFeature::PageRead, ReleaseState::Released, [], 'auto'))->usable());
|
|
self::assertFalse((new FeatureStatus(DiviFeature::PageRead, ReleaseState::Untested))->usable());
|
|
self::assertFalse((new FeatureStatus(DiviFeature::PageRead, ReleaseState::Incompatible, ['x']))->usable());
|
|
}
|
|
|
|
public function testSummaryForRefusalsAndToArrayWithTheSource(): void
|
|
{
|
|
$status = new FeatureStatus(DiviFeature::PresetWrite, ReleaseState::Incompatible, ['Designsystem: x()']);
|
|
|
|
self::assertSame(
|
|
['id' => 'preset-write', 'label' => DiviFeature::PresetWrite->label(), 'state' => 'incompatible',
|
|
'problems' => ['Designsystem: x()']],
|
|
$status->summary()
|
|
);
|
|
self::assertSame($status->summary() + ['source' => null], $status->toArray());
|
|
}
|
|
}
|