diff --git a/resources/js/types/category.test.ts b/resources/js/types/category.test.ts index 50a7682c..37cf27ab 100644 --- a/resources/js/types/category.test.ts +++ b/resources/js/types/category.test.ts @@ -1,6 +1,10 @@ import { setTranslations } from '@/utils/i18n'; import { afterEach, describe, expect, it } from 'vitest'; -import { getCategoryTypeLabel } from './category'; +import { + type CategoryColor, + getCategoryColorClasses, + getCategoryTypeLabel, +} from './category'; describe('getCategoryTypeLabel', () => { afterEach(() => { @@ -25,3 +29,19 @@ describe('getCategoryTypeLabel', () => { expect(getCategoryTypeLabel('transfer')).toBe('Transfer'); }); }); + +describe('getCategoryColorClasses', () => { + it('returns the classes for a known color', () => { + expect(getCategoryColorClasses('blue')).toEqual({ + bg: 'bg-blue-100 dark:bg-blue-700', + text: 'text-blue-700 dark:text-blue-100', + }); + }); + + it('falls back to gray for an unknown color instead of returning undefined', () => { + const classes = getCategoryColorClasses('chartreuse' as CategoryColor); + + expect(classes).toEqual(getCategoryColorClasses('gray')); + expect(classes.bg).toBeDefined(); + }); +}); diff --git a/resources/js/types/category.ts b/resources/js/types/category.ts index 3347e3d8..46f8e1de 100644 --- a/resources/js/types/category.ts +++ b/resources/js/types/category.ts @@ -235,7 +235,7 @@ export function getCategoryColorClasses(color: CategoryColor): { }, }; - return colorMap[color]; + return colorMap[color] ?? colorMap.gray; } export function getCategoryChartColor(color: CategoryColor): string {