1package styles_test
2
3import (
4 "testing"
5
6 "github.com/charmbracelet/lipgloss"
7 "github.com/stretchr/testify/require"
8
9 "github.com/bnema/dumber/internal/cli/styles"
10 "github.com/bnema/dumber/internal/domain/entity"
11)
12
13func TestNewThemeFromResolvedUsesActivePalette(t *testing.T) {
14 resolved := entity.ResolvedTheme{
15 ActivePalette: entity.ColorPalette{
16 Background: "#010101",
17 Surface: "#020202",
18 SurfaceVariant: "#030303",
19 Text: "#fefefe",
20 Muted: "#999999",
21 Accent: "#abcdef",
22 Border: "#444444",
23 },
24 }
25
26 theme := styles.NewThemeFromResolved(resolved)
27
28 require.Equal(t, lipgloss.Color("#010101"), theme.Background)
29 require.Equal(t, lipgloss.Color("#abcdef"), theme.Accent)
30 require.Equal(t, lipgloss.Color("#abcdef"), theme.Success)
31}
32
33func TestNewThemeFromResolvedFallsBackToDarkPalette(t *testing.T) {
34 resolved := entity.ResolvedTheme{
35 DarkPalette: entity.ColorPalette{
36 Background: "#111111",
37 Surface: "#222222",
38 SurfaceVariant: "#333333",
39 Text: "#eeeeee",
40 Muted: "#888888",
41 Accent: "#fedcba",
42 Border: "#444444",
43 },
44 }
45
46 theme := styles.NewThemeFromResolved(resolved)
47
48 require.Equal(t, lipgloss.Color("#111111"), theme.Background)
49 require.Equal(t, lipgloss.Color("#fedcba"), theme.Accent)
50}
51
52func TestNewThemeFromResolvedFallsBackToDefaultDarkPalette(t *testing.T) {
53 resolved := entity.ResolvedTheme{}
54 palette := styles.DefaultDarkPalette()
55
56 theme := styles.NewThemeFromResolved(resolved)
57
58 require.Equal(t, lipgloss.Color(palette.Background), theme.Background)
59 require.Equal(t, lipgloss.Color(palette.Surface), theme.Surface)
60 require.Equal(t, lipgloss.Color(palette.Text), theme.Text)
61 require.Equal(t, lipgloss.Color(palette.Accent), theme.Accent)
62 require.Equal(t, lipgloss.Color(palette.Accent), theme.Success)
63}