Files
m 19c58b6d25
CI / test (push) Successful in 54s
CI / test (pull_request) Successful in 51s
fix: constrain mobile chat header
2026-08-24 13:57:39 +03:00

54 lines
1.5 KiB
Go

package main
import (
"strings"
"testing"
)
func TestCreatorConsoleResponsiveGuardrails(t *testing.T) {
html, err := staticFiles.ReadFile("static/index.html")
if err != nil {
t.Fatal(err)
}
if !strings.Contains(string(html), `<meta name="viewport" content="width=device-width, initial-scale=1">`) {
t.Fatal("creator console is missing responsive viewport metadata")
}
css, err := staticFiles.ReadFile("static/assets/console.css")
if err != nil {
t.Fatal(err)
}
stylesheet := string(css)
for _, guard := range []string{
"@media (max-width: 680px)",
".console { display: block; }",
".diagnostic-list { grid-template-columns: 1fr; }",
".agent-details { grid-template-columns: 1fr; gap: 14px; }",
".fleet-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }",
".section-nav { display: flex;",
"overflow-x: auto",
} {
if !strings.Contains(stylesheet, guard) {
t.Fatalf("responsive guardrail missing: %s", guard)
}
}
}
func TestChatResponsiveGuardrailsConstrainMobileGridItem(t *testing.T) {
css, err := staticFiles.ReadFile("static/assets/chat.css")
if err != nil {
t.Fatal(err)
}
stylesheet := string(css)
for _, guard := range []string{
".chat-view { width: 100%; min-width: 0;",
"@media (max-width: 640px)",
".chat-layout { height: auto; display: block; }",
".chat-header > .operator-link, .build-meta { display: none; }",
".chat-header .cognitive-console-link { flex: 0 1 110px;",
} {
if !strings.Contains(stylesheet, guard) {
t.Fatalf("chat responsive guardrail missing: %s", guard)
}
}
}