package proposal_generation import ( "strings" "testing" domain "gitea.maximumdirect.net/eric/audita/v3/internal/core/glossary" "gitea.maximumdirect.net/eric/audita/v3/internal/core/schema" "gitea.maximumdirect.net/eric/audita/v3/internal/framework/promptcontext" ) func TestBuildProposalVariablesPreservesSectionGlossaryAndDescription(t *testing.T) { transcript := &schema.Transcript{Segments: []schema.Segment{{ID: 1, Speaker: "A", Start: 0, End: 1, Text: "gestures"}}} glossary := []domain.Entry{{ID: "jesters", Name: "Jesters"}} prepared, err := promptcontext.PrepareGlossaryVariables(glossary, nil) if err != nil { t.Fatal(err) } variables, err := buildProposalVariables(transcript, prepared, 0, " Fantasy names ") if err != nil { t.Fatal(err) } if !strings.Contains(variables["SectionJSON"], `"section_index": 0`) || !strings.Contains(variables["SectionJSON"], "gestures") || !strings.Contains(variables["GlossaryJSON"], "Jesters") || !strings.Contains(variables["TranscriptDescriptionBlock"], "Fantasy names") { t.Fatalf("encoded variables incomplete: %+v", variables) } empty, err := buildProposalVariables(transcript, prepared, 0, " ") if err != nil { t.Fatal(err) } if empty["TranscriptDescriptionBlock"] != "" { t.Fatal("empty description added guidance") } }