package views_test import ( "strings" "testing" "time" "task/internal/ui/views" ) func TestRenderMarkdownFastWithoutAutoStyle(t *testing.T) { src := "## Hello\n\nSome **bold** text\n\n- a\n- b\n" start := time.Now() out := views.RenderMarkdown(src, 80) elapsed := time.Since(start) if elapsed > 2*time.Second { t.Fatalf("RenderMarkdown took %v — WithAutoStyle/OSC hang likely still present", elapsed) } if out == "" || out == src { // glamour should style bold; at least produce non-empty output if strings.TrimSpace(out) == "" { t.Fatal("empty output") } } // cached path should be near-instant start = time.Now() _ = views.RenderMarkdown(src, 80) if time.Since(start) > 500*time.Millisecond { t.Fatalf("cached render too slow: %v", time.Since(start)) } t.Logf("first=%v cached=%v", elapsed, time.Since(start)) } func TestRenderDescriptionHighlightsCheckbox(t *testing.T) { src := "Intro\n\n- [ ] one\n- [x] two\n" out := views.RenderDescription(src, 40, 0) if !strings.Contains(out, "one") || !strings.Contains(out, "[ ]") { t.Fatalf("expected unchecked item in output: %q", out) } if !strings.Contains(out, "two") || !strings.Contains(out, "[x]") { t.Fatalf("expected checked item in output: %q", out) } }