1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00
wtf/view/bargraph_test.go

85 lines
1.6 KiB
Go

package view
import (
"testing"
"github.com/olebedev/config"
"github.com/rivo/tview"
"github.com/stretchr/testify/assert"
"github.com/wtfutil/wtf/cfg"
)
// MakeData - Create sample data
func makeData() []Bar {
//this could come from config
const lineCount = 3
var stats [lineCount]Bar
stats[0] = Bar{
Label: "Jun 27, 2018",
Percent: 20,
}
stats[1] = Bar{
Label: "Jul 09, 2018",
Percent: 80,
LabelColor: "red",
}
stats[2] = Bar{
Label: "Jul 09, 2018",
Percent: 80,
LabelColor: "green",
}
return stats[:]
}
func newTestGraph(graphStars int, graphIcon string) *BarGraph {
widget := NewBarGraph(
tview.NewApplication(),
"testapp",
&cfg.Common{
Config: &config.Config{
Root: map[string]interface{}{
"graphStars": graphStars,
"graphIcon": graphIcon,
},
},
},
)
return &widget
}
func Test_NewBarGraph(t *testing.T) {
widget := newTestGraph(15, "|")
assert.NotNil(t, widget.View)
assert.Equal(t, 15, widget.maxStars)
assert.Equal(t, "|", widget.starChar)
}
func Test_BuildBars(t *testing.T) {
widget := newTestGraph(15, "|")
before := widget.View.GetText(false)
widget.BuildBars(makeData())
after := widget.View.GetText(false)
assert.NotEqual(t, before, after)
}
func Test_TextView(t *testing.T) {
widget := newTestGraph(15, "|")
assert.NotNil(t, widget.TextView())
}
func Test_BuildStars(t *testing.T) {
result := BuildStars(makeData(), 20, "*")
assert.Equal(t,
"Jun 27, 2018[[default]****[default] ] 20\nJul 09, 2018[[red]****************[default] ] 80\nJul 09, 2018[[green]****************[default] ] 80\n",
result,
)
}