fix pointer bug, mockdata have been overwritten by go test everytime,

now use a const struct via func.
This commit is contained in:
2022-10-18 19:45:09 +02:00
parent 4481f59eda
commit 5d10875a3f
2 changed files with 75 additions and 84 deletions

View File

@@ -19,7 +19,6 @@ package lib
import ( import (
"github.com/gookit/color" "github.com/gookit/color"
//"github.com/xo/terminfo"
) )
var ( var (

View File

@@ -25,41 +25,43 @@ import (
"testing" "testing"
) )
var mockdata = Tabdata{ func newData() Tabdata {
maxwidthHeader: 8, return Tabdata{
maxwidthPerCol: []int{ maxwidthHeader: 8,
5, maxwidthPerCol: []int{
9, 5,
3, 9,
26, 3,
}, 26,
columns: 4,
headers: []string{
"NAME",
"DURATION",
"COUNT",
"WHEN",
},
entries: [][]string{
{
"beta",
"1d10h5m1s",
"33",
"3/1/2014",
}, },
{ columns: 4,
"alpha", headers: []string{
"4h35m", "NAME",
"170", "DURATION",
"2013-Feb-03", "COUNT",
"WHEN",
}, },
{ entries: [][]string{
"ceta", {
"33d12h", "beta",
"9", "1d10h5m1s",
"06/Jan/2008 15:04:05 -0700", "33",
"3/1/2014",
},
{
"alpha",
"4h35m",
"170",
"2013-Feb-03",
},
{
"ceta",
"33d12h",
"9",
"06/Jan/2008 15:04:05 -0700",
},
}, },
}, }
} }
var tests = []struct { var tests = []struct {
@@ -154,27 +156,42 @@ DURATION(2): 33d12h
WHEN(4): 06/Jan/2008 15:04:05 -0700`, WHEN(4): 06/Jan/2008 15:04:05 -0700`,
}, },
// ----------------------- UseColumns Tests FIXME: when we put //------------------------ SORT TESTS
// these tests AFTER the sort tests, then the order of rows
// follows the last sort call (-k 4 here), even if we set
// SortByColumn to 0, which is also the default if unset in the
// test struct. Somehow the SliceStable() seens to modify the data
// structure, which seems impossible, since it's copied during
// every test run. So, I really don't understand the
// issue. However, I'll keep this for the moment, because this
// only seems to be a unit test related issue. In real use, the
// program exits after each call anyway - and it works everytime.
{ {
name: "usecolumns", name: "sortbycolumn",
usecol: []int{2, 4}, column: 3,
usecolstr: "2,4", sortby: "numeric",
desc: false,
expect: ` expect: `
DURATION(2) WHEN(4) NAME(1) DURATION(2) COUNT(3) WHEN(4)
1d10h5m1s 3/1/2014 ceta 33d12h 9 06/Jan/2008 15:04:05 -0700
4h35m 2013-Feb-03 beta 1d10h5m1s 33 3/1/2014
33d12h 06/Jan/2008 15:04:05 -0700`, alpha 4h35m 170 2013-Feb-03`,
}, },
{
name: "sortbycolumn",
column: 4,
sortby: "time",
desc: false,
expect: `
NAME(1) DURATION(2) COUNT(3) WHEN(4)
ceta 33d12h 9 06/Jan/2008 15:04:05 -0700
alpha 4h35m 170 2013-Feb-03
beta 1d10h5m1s 33 3/1/2014`,
},
{
name: "sortbycolumn",
column: 2,
sortby: "duration",
desc: false,
expect: `
NAME(1) DURATION(2) COUNT(3) WHEN(4)
alpha 4h35m 170 2013-Feb-03
beta 1d10h5m1s 33 3/1/2014
ceta 33d12h 9 06/Jan/2008 15:04:05 -0700`,
},
// ----------------------- UseColumns Tests
{ {
name: "usecolumns", name: "usecolumns",
usecol: []int{1, 4}, usecol: []int{1, 4},
@@ -216,40 +233,15 @@ beta 33
alpha 170 alpha 170
ceta 9`, ceta 9`,
}, },
//------------------------ SORT TESTS
{ {
name: "sortbycolumn", name: "usecolumns",
column: 3, usecol: []int{2, 4},
sortby: "numeric", usecolstr: "2,4",
desc: false,
expect: ` expect: `
NAME(1) DURATION(2) COUNT(3) WHEN(4) DURATION(2) WHEN(4)
ceta 33d12h 9 06/Jan/2008 15:04:05 -0700 1d10h5m1s 3/1/2014
beta 1d10h5m1s 33 3/1/2014 4h35m 2013-Feb-03
alpha 4h35m 170 2013-Feb-03`, 33d12h 06/Jan/2008 15:04:05 -0700`,
},
{
name: "sortbycolumn",
column: 2,
sortby: "duration",
desc: false,
expect: `
NAME(1) DURATION(2) COUNT(3) WHEN(4)
alpha 4h35m 170 2013-Feb-03
beta 1d10h5m1s 33 3/1/2014
ceta 33d12h 9 06/Jan/2008 15:04:05 -0700`,
},
{
name: "sortbycolumn",
column: 4,
sortby: "time",
desc: false,
expect: `
NAME(1) DURATION(2) COUNT(3) WHEN(4)
ceta 33d12h 9 06/Jan/2008 15:04:05 -0700
alpha 4h35m 170 2013-Feb-03
beta 1d10h5m1s 33 3/1/2014`,
}, },
} }
@@ -278,7 +270,7 @@ func TestPrinter(t *testing.T) {
Columns = "" Columns = ""
} }
testdata := mockdata testdata := newData()
exp := strings.TrimSpace(tt.expect) exp := strings.TrimSpace(tt.expect)
printData(&w, &testdata) printData(&w, &testdata)