role color stuff

This commit is contained in:
41666 2025-04-05 23:38:02 -07:00
parent 41d48bf60a
commit f72c7a357b
9 changed files with 165 additions and 14 deletions

View file

@ -1,7 +1,7 @@
{{ $for := printf "category-%s_role-%s" .CategoryID .ID }}
<div
class="role"
style="--role-color: {{.Colors.Main}}; --contrast-color: var({{if .Colors.IsDark}}--grey600{{else}}--grey100{{end}});"
style="--role-color: {{.Colors.Main}}; --contrast-color: {{.Colors.Alt}};"
data-testid="role-{{.ID}}"
>
<input type="{{.InputType}}" id="{{$for}}" {{if eq .InputType

View file

@ -10,6 +10,7 @@ import (
"git.sapphic.engineer/roleypoly/v4/templates"
"git.sapphic.engineer/roleypoly/v4/types"
"git.sapphic.engineer/roleypoly/v4/types/fixtures"
"git.sapphic.engineer/roleypoly/v4/utils"
"github.com/stretchr/testify/assert"
)
@ -32,18 +33,18 @@ func TestRole(t *testing.T) {
r := &fixtures.RoleWithDarkColor
html := renderRole(t, c, r, false)
assert.Contains(t, html, "--role-color: #a20000;", "role color is set")
assert.Contains(t, html, "--contrast-color: var(--grey600);", "contrast color is set")
assert.Contains(t, html, `type="checkbox"`, "multi has input type=checkbox")
assert.Contains(t, html, fmt.Sprintf("--contrast-color: %s;", utils.RgbToString(utils.AltColor(162, 0, 0))), "contrast color is set")
assert.Contains(t, html, fmt.Sprintf(`id="%s"`, roleInputID(c, r)), "input has ID attr")
assert.Contains(t, html, fmt.Sprintf(`for="%s"`, roleInputID(c, r)), "label has for attr")
assert.Contains(t, html, `type="checkbox"`, "multi has input type=checkbox")
assert.NotContains(t, html, fmt.Sprintf(`name="%s"`, roleInputName(c)), "multi has no name attr")
// TODO: selected?
c = &fixtures.CategorySingle
r = &fixtures.RoleWithLightColor
html = renderRole(t, c, r, true)
assert.Contains(t, html, "--contrast-color: var(--grey100);", "single has name attr")
assert.Contains(t, html, `type="radio"`, "single has input type=radio")
assert.Contains(t, html, fmt.Sprintf("--contrast-color: %s;", utils.RgbToString(utils.AltColor(0xff, 0xaa, 0x88))), "contrast color")
assert.Contains(t, html, fmt.Sprintf(`name="%s"`, roleInputName(c)), "single has name attr")
}