package usecase import ( "context" "errors" "testing" "apps/backend/internal/module/radar/domain" ) func TestCostPreviewDoesNotReserveAndUsesByokMode(t *testing.T) { svc := New(nil) svc.ResolveKey = func(context.Context, int64, string) (string, string, error) { return "byok", "secret", nil } preview, err := svc.GetCostPreview(context.Background(), 42, "explore", "", "", 10) if err != nil { t.Fatal(err) } if preview.KeyMode != "byok" || preview.SearchCalls != 1 || preview.MaxAICandidates != 10 { t.Fatalf("unexpected preview: %+v", preview) } if preview.MinCredits != 1 || preview.MaxCredits <= preview.MinCredits { t.Fatalf("expected search plus judge range: %+v", preview) } } func TestCostPreviewRejectsUnknownAction(t *testing.T) { _, err := New(nil).GetCostPreview(context.Background(), 42, "unknown", "", "", 0) if err == nil || !errors.Is(err, domain.ErrValidation) { t.Fatalf("expected validation, got %v", err) } }