Stop using empty/whitespace as chat display names (#4553)

* fix(chat): fixes #4522 to stop people from setting invalid display names

* fix(chat): also guard against non-ascii whitespace like non breaking space

* Update web/utils/displayNameValidation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: handle additional whitespace

* Update web/utils/displayNameValidation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Javascript formatting autofixes

* fix: deduplicate running of validation

* fix: fix error with useMemo

* Update web/utils/displayNameValidation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update web/utils/displayNameValidation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Javascript formatting autofixes

* fix: fix component rendering issue

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Owncast <owncast@owncast.online>
This commit is contained in:
Gabe Kangas
2025-09-15 13:37:39 -07:00
committed by GitHub
co-authored by Copilot Owncast
parent 74bbe9666f
commit 8eb8bdc18b
5 changed files with 335 additions and 10 deletions
+39
View File
@@ -30,3 +30,42 @@ func TestSafeString(t *testing.T) {
t.Errorf("Expected %s, got %s", expectedResult, result)
}
}
// TestSafeStringWhitespace tests the MakeSafeStringOfLength function with whitespace-only input.
func TestSafeStringWhitespace(t *testing.T) {
testCases := []struct {
input string
expected string
name string
}{
{
input: " ",
expected: "",
name: "spaces only",
},
{
input: "\t\n\r",
expected: "",
name: "tab, newline, carriage return",
},
{
input: " \t \n \r ",
expected: "",
name: "mixed whitespace",
},
{
input: "",
expected: "",
name: "empty string",
},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
result := MakeSafeStringOfLength(tc.input, 30)
if result != tc.expected {
t.Errorf("Expected '%s', got '%s'", tc.expected, result)
}
})
}
}