Files
Sidekick/cmd/sidekick-tui/repro_test.go
T

64 lines
1.8 KiB
Go
Raw Normal View History

package main
import (
"strings"
"testing"
"github.com/charmbracelet/glamour"
2026-03-23 09:03:00 +02:00
"sidekick/pkg/sidekick"
)
func TestRenderMessageNewlines(t *testing.T) {
r, _ := glamour.NewTermRenderer(
glamour.WithStandardStyle("dark"),
glamour.WithWordWrap(80),
)
m := model{renderer: r}
msg := sidekick.Message{
Role: sidekick.MessageRoleUser,
Content: "Line 1\nLine 2",
}
rendered := m.renderMessage(msg)
if !strings.Contains(rendered, "Line 1") || !strings.Contains(rendered, "Line 2") {
t.Errorf("rendered message missing content: %s", rendered)
}
// Check if newline is preserved. If squashed, it might be "Line 1 Line 2"
if strings.Contains(rendered, "Line 1 Line 2") {
t.Error("newlines were squashed in user message")
}
}
func TestRenderMessageReasoningGap(t *testing.T) {
r, _ := glamour.NewTermRenderer(
glamour.WithStandardStyle("dark"),
glamour.WithWordWrap(80),
)
m := model{renderer: r}
msg := sidekick.Message{
Role: sidekick.MessageRoleAssistant,
Reasoning: "Thinking about it",
Content: "Actual response",
}
rendered := m.renderMessage(msg)
// Check if there is a gap between Thinking and Response
2026-03-22 18:57:16 +02:00
2026-03-23 08:37:33 +02:00
if !strings.Contains(rendered, "Thinking") ||
!strings.Contains(rendered, "Actual") ||
!strings.Contains(rendered, "response") {
t.Errorf("rendered message missing content: %s", rendered)
}
// If there's no blank line between reasoning and content, they might be too close.
// We want to see if they are on adjacent lines or have a gap.
// The user says "next one begins immediately while it should start from a new line"
// This might mean it's on the SAME line if glamour messed up, or just next line.
2026-03-22 18:57:16 +02:00
// Let's print it to see
t.Logf("Rendered Assistant:\n%s", rendered)
}