1package dto
2
3import (
4 "testing"
5
6 "github.com/stretchr/testify/require"
7
8 "github.com/bnema/dumber/internal/domain/entity"
9)
10
11func TestWebUIAppearanceWithResolvedThemePreservesColorSchemeAndUsesResolvedValues(t *testing.T) {
12 base := WebUIAppearanceConfig{
13 ColorScheme: "prefer-dark",
14 ExternalTheme: WebUIExternalThemeConfig{
15 Enabled: true,
16 Provider: "noctalia",
17 Format: "dumber-json",
18 Path: "/tmp/theme.json",
19 },
20 }
21 resolved := entity.ResolvedTheme{
22 Fonts: entity.ThemeFonts{
23 SansFont: "Inter",
24 SerifFont: "Georgia",
25 MonospaceFont: "JetBrains Mono",
26 GtkFont: "Adwaita Sans",
27 DefaultSize: 18,
28 },
29 LightPalette: entity.ColorPalette{Background: "#ffffff", Accent: "#0055ff"},
30 DarkPalette: entity.ColorPalette{Background: "#111111", Accent: "#66aaff"},
31 }
32
33 got := WebUIAppearanceWithResolvedTheme(base, resolved)
34
35 require.Equal(t, "prefer-dark", got.ColorScheme)
36 require.Equal(t, base.ExternalTheme, got.ExternalTheme)
37 require.Equal(t, "Inter", got.SansFont)
38 require.Equal(t, "Georgia", got.SerifFont)
39 require.Equal(t, "JetBrains Mono", got.MonospaceFont)
40 require.Equal(t, "Adwaita Sans", got.GtkFont)
41 require.Equal(t, 18, got.DefaultFontSize)
42 require.Equal(t, "#ffffff", got.LightPalette.Background)
43 require.Equal(t, "#0055ff", got.LightPalette.Accent)
44 require.Equal(t, "#111111", got.DarkPalette.Background)
45 require.Equal(t, "#66aaff", got.DarkPalette.Accent)
46}