github.com/mithrandie/csvq@v1.18.1/lib/doc/writer_test.go (about)

     1  package doc
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/mithrandie/csvq/lib/file"
     8  	"github.com/mithrandie/csvq/lib/option"
     9  )
    10  
    11  func TestWriter_String(t *testing.T) {
    12  	environment, _ := option.NewEnvironment(context.Background(), file.DefaultWaitTimeout, file.DefaultRetryDelay)
    13  
    14  	flags, _ := option.NewFlags(environment)
    15  	palette, _ := option.NewPalette(environment)
    16  	screenWidth := 75
    17  
    18  	w := NewWriter(screenWidth, flags, palette)
    19  	w.MaxWidth = 20
    20  
    21  	w.Write("aaa")
    22  	w.BeginBlock()
    23  	w.NewLine()
    24  	w.Write("bbb")
    25  	w.WriteSpaces(4)
    26  	w.Write("bbb")
    27  	w.BeginBlock()
    28  	w.NewLine()
    29  	w.Write("ccc")
    30  	w.BeginBlock()
    31  	w.NewLine()
    32  	w.Write("ddd")
    33  	w.EndBlock()
    34  	w.NewLine()
    35  	w.Write("ccc")
    36  	w.ClearBlock()
    37  	w.NewLine()
    38  	w.Write("aaa")
    39  	w.BeginBlock()
    40  	w.NewLine()
    41  	w.Write("bbbbbbbbbb")
    42  	w.Write(", ")
    43  	w.Write("bbbbbbbbbb")
    44  	w.Write(", ")
    45  	w.Write("bbbbbbbbbbbbbbbbbbbbbbbb")
    46  	w.WriteWithoutLineBreak(", ")
    47  	w.ClearBlock()
    48  	w.NewLine()
    49  	w.Write("aaa")
    50  	w.BeginBlock()
    51  	w.NewLine()
    52  	w.Write("key: ")
    53  	w.BeginSubBlock()
    54  	w.Write("bbbbbbb")
    55  	w.WriteWithoutLineBreak(", ")
    56  	w.Write("bbbbbbb")
    57  	w.EndSubBlock()
    58  	w.NewLine()
    59  	w.Write("bbbbbbb")
    60  
    61  	expect := "" +
    62  		" aaa\n" +
    63  		"     bbb    bbb\n" +
    64  		"         ccc\n" +
    65  		"             ddd\n" +
    66  		"         ccc\n" +
    67  		" aaa\n" +
    68  		"     bbbbbbbbbb, \n" +
    69  		"     bbbbbbbbbb, \n" +
    70  		"     bbbbbbbbbbbbbbbbbbbbbbbb, \n" +
    71  		" aaa\n" +
    72  		"     key: bbbbbbb, \n" +
    73  		"          bbbbbbb\n" +
    74  		"     bbbbbbb"
    75  	result := w.String()
    76  
    77  	if result != expect {
    78  		t.Errorf("result = %s, want %s", result, expect)
    79  	}
    80  
    81  	w = NewWriter(screenWidth, flags, palette)
    82  	w.MaxWidth = 20
    83  
    84  	w.Title1 = "title"
    85  
    86  	w.Write("aaa")
    87  	w.BeginBlock()
    88  	w.NewLine()
    89  	w.Write("bbbbbbbbbb")
    90  	w.Write(", ")
    91  	w.Write("bbbbbbbbbb")
    92  	w.Write(", ")
    93  	w.Write("bbbbbbbbbbbbbbbbbbbbbbbbb")
    94  	w.WriteWithoutLineBreak(", ")
    95  	w.NewLine()
    96  	w.WriteWithAutoLineBreak("aaaaa bbbbb ccccc\n > ddddd \n eeeee")
    97  	w.NewLine()
    98  	w.WriteWithAutoLineBreak("```\naaaaa     bbbbb\n```\nccccc")
    99  
   100  	expect = "" +
   101  		"       title\n" +
   102  		"--------------------\n" +
   103  		" aaa\n" +
   104  		"     bbbbbbbbbb, \n" +
   105  		"     bbbbbbbbbb, \n" +
   106  		"     bbbbbbbbbbbbbbbbbbbbbbbbb, \n" +
   107  		"     aaaaa bbbbb\n" +
   108  		"     ccccc\n" +
   109  		"         ddddd\n" +
   110  		"     eeeee\n" +
   111  		"     aaaaa     bbbbb\n" +
   112  		"     ccccc" +
   113  		""
   114  	result = w.String()
   115  
   116  	if result != expect {
   117  		t.Errorf("result = %s, want %s", result, expect)
   118  	}
   119  
   120  	w = NewWriter(screenWidth, flags, palette)
   121  	w.MaxWidth = 20
   122  
   123  	w.Title1 = "title"
   124  
   125  	w.Write("aaa")
   126  
   127  	expect = "" +
   128  		" title\n" +
   129  		"-------\n" +
   130  		" aaa"
   131  	result = w.String()
   132  
   133  	if result != expect {
   134  		t.Errorf("result = %s, want %s", result, expect)
   135  	}
   136  
   137  	palette.Enable()
   138  
   139  	w = NewWriter(screenWidth, flags, palette)
   140  	w.MaxWidth = 20
   141  
   142  	w.Title1 = "title1"
   143  	w.Title2 = "title2"
   144  	w.Title2Effect = option.IdentifierEffect
   145  
   146  	w.Write("aaa")
   147  	w.BeginBlock()
   148  	w.NewLine()
   149  	w.WriteColor("bbbbbbbbbb", option.StringEffect)
   150  	w.Write(", ")
   151  	w.Write("bbbbbbbbbb")
   152  
   153  	expect = "" +
   154  		"  title1 \x1b[36;1mtitle2\x1b[0m\n" +
   155  		"------------------\n" +
   156  		" aaa\n" +
   157  		"     \x1b[32mbbbbbbbbbb\x1b[0m, \n" +
   158  		"     bbbbbbbbbb"
   159  	result = w.String()
   160  
   161  	if result != expect {
   162  		t.Errorf("result = %s, want %s", result, expect)
   163  	}
   164  }