39 lines
1.2 KiB
PHP
39 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace Modules\Stylist\Tests\Feature;
|
|
|
|
use Modules\Stylist\Html\ThemeHtmlBuilder;
|
|
use Tests\TestCase;
|
|
|
|
final class ThemeHtmlBuilderTest extends TestCase
|
|
{
|
|
public function test_css_variables_are_rendered(): void
|
|
{
|
|
config(['stylist.fallback_variables.brand-primary' => '#111827']);
|
|
|
|
$html = app(ThemeHtmlBuilder::class)->variables()->toHtml();
|
|
|
|
$this->assertStringContainsString('--brand-primary: #111827;', $html);
|
|
}
|
|
|
|
public function test_appearance_does_not_overwrite_theme_identity(): void
|
|
{
|
|
$html = app(ThemeHtmlBuilder::class)->variables()->toHtml();
|
|
|
|
$this->assertStringContainsString('d.dataset.theme=k', $html);
|
|
$this->assertStringContainsString('d.dataset.appearance=dark?', $html);
|
|
$this->assertStringNotContainsString("d.dataset.theme=dark?'dark':'light'", $html);
|
|
}
|
|
|
|
public function test_appearance_variables_use_data_appearance_selector(): void
|
|
{
|
|
$html = app(ThemeHtmlBuilder::class)->variables()->toHtml();
|
|
|
|
if (str_contains($html, 'data-appearance')) {
|
|
$this->assertStringNotContainsString(':root[data-theme="dark"]', $html);
|
|
} else {
|
|
$this->addToAssertionCount(1);
|
|
}
|
|
}
|
|
}
|