mirror of
https://github.com/ddworken/hishtory.git
synced 2024-11-25 09:43:20 +01:00
81 lines
2.0 KiB
Go
81 lines
2.0 KiB
Go
// Forked from https://github.com/charmbracelet/bubbles/blob/master/table/table_test.go to add horizontal scrolling
|
|
|
|
package table
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/ddworken/hishtory/shared/testutils"
|
|
)
|
|
|
|
func TestFromValues(t *testing.T) {
|
|
input := "foo1,bar1\nfoo2,bar2\nfoo3,bar3"
|
|
table := New(WithColumns([]Column{{Title: "Foo"}, {Title: "Bar"}}))
|
|
table.FromValues(input, ",")
|
|
|
|
if len(table.rows) != 3 {
|
|
t.Fatalf("expect table to have 3 rows but it has %d", len(table.rows))
|
|
}
|
|
|
|
expect := []Row{
|
|
{"foo1", "bar1"},
|
|
{"foo2", "bar2"},
|
|
{"foo3", "bar3"},
|
|
}
|
|
if !deepEqual(table.rows, expect) {
|
|
t.Fatal("table rows is not equals to the input")
|
|
}
|
|
}
|
|
|
|
func TestFromValuesWithTabSeparator(t *testing.T) {
|
|
input := "foo1.\tbar1\nfoo,bar,baz\tbar,2"
|
|
table := New(WithColumns([]Column{{Title: "Foo"}, {Title: "Bar"}}))
|
|
table.FromValues(input, "\t")
|
|
|
|
if len(table.rows) != 2 {
|
|
t.Fatalf("expect table to have 2 rows but it has %d", len(table.rows))
|
|
}
|
|
|
|
expect := []Row{
|
|
{"foo1.", "bar1"},
|
|
{"foo,bar,baz", "bar,2"},
|
|
}
|
|
if !deepEqual(table.rows, expect) {
|
|
t.Fatal("table rows is not equals to the input")
|
|
}
|
|
}
|
|
|
|
func TestHScoll(t *testing.T) {
|
|
table := New(
|
|
WithColumns([]Column{{Title: "Column1", Width: 10}, {Title: "Column2", Width: 20}}),
|
|
WithRows([]Row{
|
|
{"a1", "a2345"},
|
|
{"b1", "b23"},
|
|
{"c1", "c1234567890abcdefghijklmnopqrstuvwxyz"},
|
|
}),
|
|
)
|
|
testutils.CompareGoldens(t, table.View(), "unittestTable-truncatedTable")
|
|
table.MoveRight(1)
|
|
testutils.CompareGoldens(t, table.View(), "unittestTable-truncatedTable-right1")
|
|
table.MoveRight(1)
|
|
testutils.CompareGoldens(t, table.View(), "unittestTable-truncatedTable-right2")
|
|
table.MoveRight(1)
|
|
testutils.CompareGoldens(t, table.View(), "unittestTable-truncatedTable-right3")
|
|
table.MoveLeft(1)
|
|
testutils.CompareGoldens(t, table.View(), "unittestTable-truncatedTable-right2")
|
|
}
|
|
|
|
func deepEqual(a, b []Row) bool {
|
|
if len(a) != len(b) {
|
|
return false
|
|
}
|
|
for i, r := range a {
|
|
for j, f := range r {
|
|
if f != b[i][j] {
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
return true
|
|
}
|