github.com/wrgl/wrgl@v0.14.0/pkg/widgets/usage_bar_test.go (about)

     1  // SPDX-License-Identifier: Apache-2.0
     2  // Copyright © 2022 Wrangle Ltd
     3  
     4  package widgets
     5  
     6  import (
     7  	"strings"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestUsageBar(t *testing.T) {
    14  	b := NewUsageBar([][2]string{
    15  		{"n", "Next conflict"},
    16  		{"r", "Mark row as resolved"},
    17  		{"R", "Mark row as unresolved"},
    18  		{"u", "Undo"},
    19  		{"U", "Redo"},
    20  		{"d", "Delete row"},
    21  		{"D", "Delete column"},
    22  		{"h", "Left"},
    23  		{"j", "Down"},
    24  		{"k", "Up"},
    25  		{"l", "Right"},
    26  		{"g", "Scroll to begin"},
    27  		{"G", "Scroll to end"},
    28  		{"Q", "Abort merge"},
    29  		{"X", "Finish merge"},
    30  	}, 2)
    31  
    32  	b.printRows(120)
    33  	assert.Equal(t, strings.Join([]string{
    34  		" n  Next conflict   r  Mark row as resolved   R  Mark row as unresolved   u  Undo   U  Redo    d  Delete row     ",
    35  		"",
    36  		" D  Delete column   h  Left                   j  Down                     k  Up     l  Right   g  Scroll to begin",
    37  		"",
    38  		" G  Scroll to end   Q  Abort merge            X  Finish merge          ",
    39  	}, "\n"), b.GetText(true))
    40  	assert.Equal(t, 5, b.height)
    41  
    42  	b.printRows(70)
    43  	assert.Equal(t, strings.Join([]string{
    44  		" n  Next conflict            r  Mark row as resolved",
    45  		"",
    46  		" R  Mark row as unresolved   u  Undo                ",
    47  		"",
    48  		" U  Redo                     d  Delete row          ",
    49  		"",
    50  		" D  Delete column            h  Left                ",
    51  		"",
    52  		" j  Down                     k  Up                  ",
    53  		"",
    54  		" l  Right                    g  Scroll to begin     ",
    55  		"",
    56  		" G  Scroll to end            Q  Abort merge         ",
    57  		"",
    58  		" X  Finish merge          ",
    59  	}, "\n"), b.GetText(true))
    60  	assert.Equal(t, 15, b.height)
    61  
    62  	b.printRows(50)
    63  	assert.Equal(t, strings.Join([]string{
    64  		" n  Next conflict         ",
    65  		"",
    66  		" r  Mark row as resolved  ",
    67  		"",
    68  		" R  Mark row as unresolved",
    69  		"",
    70  		" u  Undo                  ",
    71  		"",
    72  		" U  Redo                  ",
    73  		"",
    74  		" d  Delete row            ",
    75  		"",
    76  		" D  Delete column         ",
    77  		"",
    78  		" h  Left                  ",
    79  		"",
    80  		" j  Down                  ",
    81  		"",
    82  		" k  Up                    ",
    83  		"",
    84  		" l  Right                 ",
    85  		"",
    86  		" g  Scroll to begin       ",
    87  		"",
    88  		" G  Scroll to end         ",
    89  		"",
    90  		" Q  Abort merge           ",
    91  		"",
    92  		" X  Finish merge          ",
    93  	}, "\n"), b.GetText(true))
    94  	assert.Equal(t, 29, b.height)
    95  
    96  	b.printRows(10)
    97  	assert.Equal(t, strings.Join([]string{
    98  		" n  Next conflict       ",
    99  		"",
   100  		" r  Mark row as resolved",
   101  		"",
   102  		" R  Mark row as unresolved",
   103  		"",
   104  		" u  Undo                ",
   105  		"",
   106  		" U  Redo                ",
   107  		"",
   108  		" d  Delete row          ",
   109  		"",
   110  		" D  Delete column       ",
   111  		"",
   112  		" h  Left                ",
   113  		"",
   114  		" j  Down                ",
   115  		"",
   116  		" k  Up                  ",
   117  		"",
   118  		" l  Right               ",
   119  		"",
   120  		" g  Scroll to begin     ",
   121  		"",
   122  		" G  Scroll to end       ",
   123  		"",
   124  		" Q  Abort merge         ",
   125  		"",
   126  		" X  Finish merge        ",
   127  	}, "\n"), b.GetText(true))
   128  	assert.Equal(t, 29, b.height)
   129  }