Files
MujicaUI/finance/margin_indicator_test.go
T

42 lines
1.2 KiB
Go

package finance
import (
"testing"
"github.com/egoist/mygo/ui"
"git.zacharyzhang.com/ZacharyZhang-NY/MujicaUI/core"
)
func TestMarginIndicatorStates(t *testing.T) {
ratio := 0.42
tt := tradingTester(core.GreenUp, 400, 160, func(c *ui.Context) {
ui.Box(c).Width(300).Children(func() { MarginIndicator(c, ratio, MarginIndicatorOptions{}) })
})
for _, tc := range []struct {
ratio float64
want string
}{{0.42, "Safe"}, {0.8, "Margin call"}, {1.2, "Liquidation"}} {
ratio = tc.ratio
tt.Frame()
if !tt.HasText(tc.want) {
t.Fatalf("%v: %q", tc.ratio, tt.Texts())
}
}
if !tt.HasText("Warning line 80.0%") || !tt.HasText("Liquidation line 100.0%") || !tt.HasText("120.0%") {
t.Fatalf("lines: %q", tt.Texts())
}
defer func() {
if recover() == nil {
t.Fatal("warning above liquidation accepted")
}
}()
tradingTester(core.GreenUp, 100, 100, func(c *ui.Context) { MarginIndicator(c, 1, MarginIndicatorOptions{Warning: 2, Liquidation: 1}) })
}
func TestMarginIndicatorSnapshot(t *testing.T) {
snapshot(t, "margin_indicator", 340, 120, func(c *ui.Context) {
ui.Column(c).Padding(20).Children(func() { MarginIndicator(c, 0.86, MarginIndicatorOptions{}) })
})
}