standard colours

This commit is contained in:
Mark Gregory
2026-06-23 15:32:05 +01:00
parent 3be4ff590f
commit a8cbb8e2ac
19 changed files with 330 additions and 56 deletions
@@ -63,7 +63,7 @@ trait BuildsHelpdeskFixtures
return $this->ticketStatus(array_merge([
'name' => 'Closed',
'slug' => fake()->unique()->slug(2),
'color' => 'emerald',
'color' => 'green',
'sort_order' => 99,
'is_closed' => true,
], $attributes));
@@ -165,7 +165,7 @@ trait BuildsHelpdeskFixtures
['slug' => 'closed'],
[
'name' => 'Closed',
'color' => 'emerald',
'color' => 'green',
'sort_order' => 99,
'is_closed' => true,
],
@@ -97,7 +97,7 @@ final class SettingsCrudTest extends TestCase
->set('projectForm.team_id', $fixtures['team']->id)
->set('projectForm.title', 'Customer Portal')
->set('projectForm.slug', 'customer-portal')
->set('projectForm.color', 'cyan')
->set('projectForm.color', 'blue')
->call('saveProject')
->assertHasNoErrors();
$project = Project::query()->where('slug', 'customer-portal')->firstOrFail();
@@ -223,7 +223,7 @@ final class SettingsCrudTest extends TestCase
Livewire::test(SettingsManager::class)
->set('tagForm.name', 'VIP')
->set('tagForm.slug', 'vip')
->set('tagForm.color', 'pink')
->set('tagForm.color', 'purple')
->call('saveTag')
->assertHasNoErrors();
$tag = Tag::query()->where('slug', 'vip')->firstOrFail();
@@ -248,4 +248,22 @@ final class SettingsCrudTest extends TestCase
->assertHasNoErrors();
$this->assertDatabaseHas('helpdesk_products', ['id' => $product->id, 'version' => '1.1']);
}
public function test_helpdesk_colour_selectors_are_dropdowns_and_reject_unknown_values(): void
{
$this->seedLookupData();
$admin = $this->admin(['name' => 'Colour Settings Admin']);
$this->actingAs($admin);
Livewire::test(SettingsManager::class)
->assertSee('● Red — #dc2626')
->assertSee('● Green — #16a34a')
->set('statusForm.name', 'Invalid Colour')
->set('statusForm.slug', 'invalid-colour')
->set('statusForm.color', 'brown')
->set('statusForm.sort_order', 99)
->call('saveStatus')
->assertHasErrors(['statusForm.color']);
}
}
@@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
namespace Modules\Helpdesk\Tests\Unit;
use Modules\Helpdesk\Support\Color;
use PHPUnit\Framework\TestCase;
final class ColorPaletteTest extends TestCase
{
public function test_standard_palette_uses_clear_enterprise_colours(): void
{
self::assertSame('#dc2626', Color::css('red'));
self::assertSame('#16a34a', Color::css('green'));
self::assertSame('#2563eb', Color::css('blue'));
self::assertSame('#6b7280', Color::css('gray'));
}
public function test_legacy_colour_names_are_normalised(): void
{
self::assertSame('red', Color::normalise('rose'));
self::assertSame('green', Color::normalise('emerald'));
self::assertSame('blue', Color::normalise('cyan'));
self::assertSame('gray', Color::normalise('zinc'));
}
public function test_hex_values_can_still_be_resolved_for_display(): void
{
self::assertSame('#ffffff', Color::css('#ffffff'));
self::assertSame('#000000', Color::css('#000000'));
}
}