MM-63912 - enhance validation for channel banner colors (#30981)

* MM-63912 - enhance validation for channel banner colors

* fix tests

* fix unit tests
Этот коммит содержится в:
Pablo Vélez
2025-05-13 09:59:31 +02:00
коммит произвёл GitHub
родитель 4ae5d647fb
Коммит 64ed8f02dc
5 изменённых файлов: 186 добавлений и 14 удалений

Просмотреть файл

@@ -87,6 +87,68 @@ func TestChannelIsValid(t *testing.T) {
require.NotNil(t, o.IsValid())
}
func TestChannelBannerBackgroundColorValidation(t *testing.T) {
o := Channel{
Id: NewId(),
CreateAt: GetMillis(),
UpdateAt: GetMillis(),
Name: "valid-name",
Type: ChannelTypeOpen,
Header: "valid-header",
Purpose: "valid-purpose",
BannerInfo: &ChannelBannerInfo{
Enabled: NewPointer(true),
Text: NewPointer("Banner Text"),
},
}
// Test with nil background color
o.BannerInfo.BackgroundColor = nil
require.NotNil(t, o.IsValid())
require.Equal(t, "model.channel.is_valid.banner_info.background_color.empty.app_error", o.IsValid().Id)
// Test with empty background color
o.BannerInfo.BackgroundColor = NewPointer("")
require.NotNil(t, o.IsValid())
require.Equal(t, "model.channel.is_valid.banner_info.background_color.empty.app_error", o.IsValid().Id)
// Test with invalid background color (no # prefix)
o.BannerInfo.BackgroundColor = NewPointer("FF0000")
require.NotNil(t, o.IsValid())
require.Equal(t, "model.channel.is_valid.banner_info.background_color.invalid.app_error", o.IsValid().Id)
// Test with invalid background color (invalid characters)
o.BannerInfo.BackgroundColor = NewPointer("#GGGGGG")
require.NotNil(t, o.IsValid())
require.Equal(t, "model.channel.is_valid.banner_info.background_color.invalid.app_error", o.IsValid().Id)
// Test with invalid background color (wrong length)
o.BannerInfo.BackgroundColor = NewPointer("#FF00")
require.NotNil(t, o.IsValid())
require.Equal(t, "model.channel.is_valid.banner_info.background_color.invalid.app_error", o.IsValid().Id)
// Test with invalid background color (wrong length)
o.BannerInfo.BackgroundColor = NewPointer("#FF00000")
require.NotNil(t, o.IsValid())
require.Equal(t, "model.channel.is_valid.banner_info.background_color.invalid.app_error", o.IsValid().Id)
// Test with valid 6-digit hex color
o.BannerInfo.BackgroundColor = NewPointer("#FF0000")
require.Nil(t, o.IsValid())
// Test with valid 6-digit hex color (lowercase)
o.BannerInfo.BackgroundColor = NewPointer("#ff0000")
require.Nil(t, o.IsValid())
// Test with valid 3-digit hex color
o.BannerInfo.BackgroundColor = NewPointer("#F00")
require.Nil(t, o.IsValid())
// Test with valid 3-digit hex color (lowercase)
o.BannerInfo.BackgroundColor = NewPointer("#f00")
require.Nil(t, o.IsValid())
}
func TestChannelPreSave(t *testing.T) {
o := Channel{Name: "test"}
o.PreSave()