package html
import (
"encoding/json"
"strings"
"testing"
"github.com/bnema/vev-vt/core"
"github.com/stretchr/testify/require"
)
func TestDefaultThemeMatchesStylesheetFallbacks(t *testing.T) {
stylesheet := strings.NewReplacer(" ", "", "\n", "", "\t", "").Replace(Stylesheet())
for declaration := range strings.SplitSeq(DefaultTheme().CSS(), ";") {
if declaration != "" {
require.Contains(t, stylesheet, declaration)
}
}
}
func TestThemeCSSUsesOnlyTypedColorValues(t *testing.T) {
theme := DefaultTheme()
theme.Foreground = core.RGB{R: 1, G: 2, B: 3}
css := theme.CSS()
require.Contains(t, css, "--vev-fg:#010203")
require.Contains(t, css, "--vev-color-15:")
require.Equal(t, 21, strings.Count(css, "--vev-"))
require.NotEmpty(t, Stylesheet())
encoded, err := json.Marshal(theme)
require.NoError(t, err)
require.Contains(t, string(encoded), `"foreground":{"r":1,"g":2,"b":3}`)
require.NotContains(t, string(encoded), `"Foreground"`)
}