package multiagent

import (
	"context"
	"strings"
	"testing"

	"github.com/cloudwego/eino/adk"
	"github.com/cloudwego/eino/schema"
)

func TestLiteralInstructionGenModelInput_PreservesLiteralCurlyBraces(t *testing.T) {
	t.Parallel()
	instruction := "- [finding/x] summary {关系边: discovered_on←target/dev}\n" +
		"如 finding 上 {from:target/*, type:discovered_on}"
	msgs, err := literalInstructionGenModelInput(context.Background(), instruction, &adk.AgentInput{
		Messages: []adk.Message{schema.UserMessage("继续")},
	})
	if err != nil {
		t.Fatalf("unexpected error: %v", err)
	}
	if len(msgs) != 2 {
		t.Fatalf("expected 2 messages, got %d", len(msgs))
	}
	if msgs[0].Role != schema.System {
		t.Fatalf("first message must be system, got %s", msgs[0].Role)
	}
	for _, want := range []string{"{关系边:", "{from:target/*, type:discovered_on}"} {
		if !strings.Contains(msgs[0].Content, want) {
			t.Fatalf("system content missing %q: %q", want, msgs[0].Content)
		}
	}
}
