diff options
Diffstat (limited to 'model/preference_test.go')
-rw-r--r-- | model/preference_test.go | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/model/preference_test.go b/model/preference_test.go index e29250bba..df7fe612d 100644 --- a/model/preference_test.go +++ b/model/preference_test.go @@ -4,6 +4,7 @@ package model import ( + "encoding/json" "strings" "testing" ) @@ -31,7 +32,7 @@ func TestPreferenceIsValid(t *testing.T) { preference.Category = PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW if err := preference.IsValid(); err != nil { - t.Fatal() + t.Fatal(err) } preference.Name = strings.Repeat("01234567890", 20) @@ -41,16 +42,48 @@ func TestPreferenceIsValid(t *testing.T) { preference.Name = NewId() if err := preference.IsValid(); err != nil { - t.Fatal() + t.Fatal(err) } - preference.Value = strings.Repeat("01234567890", 20) + preference.Value = strings.Repeat("01234567890", 201) if err := preference.IsValid(); err == nil { t.Fatal() } preference.Value = "1234garbage" if err := preference.IsValid(); err != nil { + t.Fatal(err) + } + + preference.Category = PREFERENCE_CATEGORY_THEME + if err := preference.IsValid(); err == nil { t.Fatal() } + + preference.Value = `{"color": "#ff0000", "color2": "#faf"}` + if err := preference.IsValid(); err != nil { + t.Fatal(err) + } +} + +func TestPreferencePreUpdate(t *testing.T) { + preference := Preference{ + Category: PREFERENCE_CATEGORY_THEME, + Value: `{"color": "#ff0000", "color2": "#faf", "codeTheme": "github", "invalid": "invalid"}`, + } + + preference.PreUpdate() + + var props map[string]string + if err := json.NewDecoder(strings.NewReader(preference.Value)).Decode(&props); err != nil { + t.Fatal(err) + } + + if props["color"] != "#ff0000" || props["color2"] != "#faf" || props["codeTheme"] != "github" { + t.Fatal("shouldn't have changed valid props") + } + + if props["invalid"] == "invalid" { + t.Fatal("should have changed invalid prop") + } } |