mirror of
https://github.com/warmbly/warmbly.git
synced 2026-10-12 16:02:44 +00:00
29 lines
1.1 KiB
Go
29 lines
1.1 KiB
Go
package handler
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/warmbly/warmbly/internal/models"
|
|
)
|
|
|
|
func TestWarmupSettingsUpdatePreservesOmittedFields(t *testing.T) {
|
|
current := models.DefaultWarmupGenerationSettings()
|
|
current.Model, current.CadenceHours = "stored-configured-model", 36
|
|
got, err := decodeWarmupGenerationSettings(strings.NewReader(`{"generation_enabled":false,"ai_selection_share":0}`), current)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got.GenerationEnabled || got.AISelectionShare != 0 || got.Model != current.Model || got.CadenceHours != 36 || !got.ScheduleEnabled {
|
|
t.Fatalf("omitted/explicit fields lost: %+v", got)
|
|
}
|
|
}
|
|
|
|
func TestWarmupSettingsUpdateRejectsInvalidDocuments(t *testing.T) {
|
|
for _, input := range []string{"", "null", "[]", `{"unknown":true}`, `{} {}`, `{"enabled":"false"}`, `{"pools":[{"unexpected":true}]}`, `{"model":"` + strings.Repeat("x", 64*1024) + `"}`} {
|
|
if _, err := decodeWarmupGenerationSettings(strings.NewReader(input), models.DefaultWarmupGenerationSettings()); err == nil {
|
|
t.Errorf("accepted invalid settings document (length %d)", len(input))
|
|
}
|
|
}
|
|
}
|