package parser import ( "testing" "github.com/diamondburned/cchat-mock/segments" "github.com/diamondburned/cchat/text" ) func TestRenderMarkup(t *testing.T) { content := text.Rich{Content: "astolfo is the best trap"} content.Segments = []text.Segment{ segments.NewColored(content.Content, 0x55CDFC), } expect := `` + content.Content + "" if text := RenderMarkup(content); text != expect { t.Fatal("Unexpected text:", text) } } // Test no longer works, and should not work anyway. // func TestRenderMarkupPartial(t *testing.T) { // content := text.Rich{Content: "random placeholder text go brrr"} // content.Segments = []text.Segment{ // // This is absolutely jankery that should not work at all, but we'll try // // it anyway. // coloredSegment{0, 4, 0x55CDFC}, // coloredSegment{2, 6, 0xFFFFFF}, // naive parsing, so spans close unexpectedly. // coloredSegment{4, 6, 0xF7A8B8}, // } // const expect = "" + // random // `rand` + // `om` // if text := RenderMarkup(content); !strings.HasPrefix(text, expect) { // t.Fatal("Unexpected text:", text) // } // } type coloredSegment struct { start int end int color uint32 } var _ text.Colorer = (*coloredSegment)(nil) func (c coloredSegment) Bounds() (start, end int) { return c.start, c.end } func (c coloredSegment) Color() uint32 { return c.color }