feat(v3.3.0): enterprise presets, badges, notifications, rule controller, watch mode, offline healer, and WCAG 2.2 ruleset

This commit is contained in:
Enes Yakıştır
2026-09-12 10:12:05 +03:00
parent 2de1f34878
commit ef8ccb9f75
43 changed files with 2598 additions and 81 deletions
+61
View File
@@ -0,0 +1,61 @@
<?php
namespace YakNet\AccessibilityConsole\Tests\Badges;
use PHPUnit\Framework\TestCase;
use YakNet\AccessibilityConsole\Badges\BadgeGenerator;
class BadgeGeneratorTest extends TestCase
{
public function testGeneratesValidScoreBadgeSvg(): void
{
$svg = BadgeGenerator::generateScoreBadge(95);
$this->assertStringContainsString('<svg', $svg);
$this->assertStringContainsString('</svg>', $svg);
$this->assertStringContainsString('accessibility', $svg);
$this->assertStringContainsString('95/100', $svg);
$this->assertStringContainsString('#10b981', $svg); // green color for >= 90
}
public function testGeneratesWarningScoreBadgeSvg(): void
{
$svg = BadgeGenerator::generateScoreBadge(65);
$this->assertStringContainsString('65/100', $svg);
$this->assertStringContainsString('#ef4444', $svg); // red color for < 70
}
public function testGeneratesComplianceBadge(): void
{
$svg = BadgeGenerator::generateComplianceBadge('WCAG 2.1 AA', true);
$this->assertStringContainsString('WCAG 2.1 AA', $svg);
$this->assertStringContainsString('passed', $svg);
}
public function testGeneratesViolationsBadge(): void
{
$svg = BadgeGenerator::generateViolationsBadge(0);
$this->assertStringContainsString('0 issues', $svg);
$svgIssues = BadgeGenerator::generateViolationsBadge(4);
$this->assertStringContainsString('4 issues', $svgIssues);
}
public function testGeneratesBadgeWithCustomOptions(): void
{
$options = new \YakNet\AccessibilityConsole\Badges\BadgeOptions(
label: 'custom-a11y',
leftColor: '#003366',
rightColor: '#00cc66',
borderRadius: 6
);
$svg = BadgeGenerator::generateScoreBadge(88, $options);
$this->assertStringContainsString('custom-a11y', $svg);
$this->assertStringContainsString('#003366', $svg);
$this->assertStringContainsString('#00cc66', $svg);
$this->assertStringContainsString('rx="6"', $svg);
}
}