Files
Luminary/internal/prediction/inject_test.go
T
renjue e761074fb9
CI / docker (push) Successful in 3m46s
Unify ComfyUI ingress model ID and fix seed validation errors.
Merge model_id/alias in the image provider UI, and ensure ComfyUI never receives seed -1 after cloneMap type coercion.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 14:17:49 +08:00

76 lines
1.8 KiB
Go

package prediction
import (
"encoding/json"
"testing"
)
func TestResolveSeedNegativeInt(t *testing.T) {
got := resolveSeed(-1)
n, ok := got.(int)
if !ok || n < 0 {
t.Fatalf("expected non-negative int, got %v", got)
}
}
func TestResolveSeedNegativeFloat64(t *testing.T) {
got := resolveSeed(float64(-1))
n, ok := got.(int)
if !ok || n < 0 {
t.Fatalf("expected non-negative int from float64 -1, got %v", got)
}
}
func TestResolveSeedExplicit(t *testing.T) {
if got := resolveSeed(42); got != 42 {
t.Fatalf("expected 42, got %v", got)
}
}
func TestBuildPromptSanitizesUnboundKSamplerSeed(t *testing.T) {
workflow := map[string]any{
"17": map[string]any{
"class_type": "KSampler",
"inputs": map[string]any{
"seed": float64(-1),
"steps": 20,
},
},
}
raw, _ := json.Marshal(workflow)
prompt, err := BuildPrompt(string(raw), InputBinding{}, map[string]any{})
if err != nil {
t.Fatal(err)
}
node := prompt["17"].(map[string]any)
inputs := node["inputs"].(map[string]any)
seed, ok := inputs["seed"].(int)
if !ok || seed < 0 {
t.Fatalf("expected sanitized seed, got %v", inputs["seed"])
}
}
func TestBuildPromptSeedBindingAfterCloneMap(t *testing.T) {
workflow := map[string]any{
"17": map[string]any{
"class_type": "KSampler",
"inputs": map[string]any{"seed": 0},
},
}
raw, _ := json.Marshal(workflow)
binding := InputBinding{
"seed": {Node: "17", Field: "seed"},
}
// cloneMap round-trip produces float64, as in execute().
input := cloneMap(map[string]any{"seed": -1})
prompt, err := BuildPrompt(string(raw), binding, input)
if err != nil {
t.Fatal(err)
}
inputs := prompt["17"].(map[string]any)["inputs"].(map[string]any)
seed, ok := inputs["seed"].(int)
if !ok || seed < 0 {
t.Fatalf("expected non-negative seed after binding, got %v", inputs["seed"])
}
}