github.com/markusbkk/elvish@v0.0.0-20231204143114-91dc52438621/pkg/edit/buf_to_html_test.go (about)

     1  package edit
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/markusbkk/elvish/pkg/cli/term"
     7  	"github.com/markusbkk/elvish/pkg/tt"
     8  )
     9  
    10  func TestBufToHTML(t *testing.T) {
    11  	tt.Test(t, tt.Fn("bufToHTML", bufToHTML), tt.Table{
    12  		// Just plain text.
    13  		tt.Args(
    14  			bb().Write("abc").Buffer(),
    15  		).Rets(
    16  			`abc` + "\n",
    17  		),
    18  		// Just styled text.
    19  		tt.Args(
    20  			bb().WriteStringSGR("abc", "31").Buffer(),
    21  		).Rets(
    22  			`<span class="sgr-31">abc</span>` + "\n",
    23  		),
    24  		// Mixing plain and styled texts.
    25  		tt.Args(
    26  			bb().
    27  				WriteStringSGR("abc", "31").
    28  				Write(" def ").
    29  				WriteStringSGR("xyz", "1").
    30  				Buffer(),
    31  		).Rets(
    32  			`<span class="sgr-31">abc</span> def <span class="sgr-1">xyz</span>` + "\n",
    33  		),
    34  		// Multiple lines.
    35  		tt.Args(
    36  			bb().
    37  				WriteStringSGR("abc", "31").
    38  				Newline().Write("def").
    39  				Newline().WriteStringSGR("xyz", "1").
    40  				Buffer(),
    41  		).Rets(
    42  			`<span class="sgr-31">abc</span>` + "\n" +
    43  				`def` + "\n" +
    44  				`<span class="sgr-1">xyz</span>` + "\n",
    45  		),
    46  	})
    47  }
    48  
    49  func bb() *term.BufferBuilder { return term.NewBufferBuilder(20) }