Files
MujicaUI/risk_meter_test.go
T

43 lines
1.3 KiB
Go

package mujica
import (
"testing"
"github.com/egoist/mygo/ui"
)
func TestRiskMeterLevelsAndText(t *testing.T) {
level := 4
levels := []RiskLevel{{Label: "Conservative", Description: "Capital first."}, {Label: "Balanced"}, {Label: "Aggressive", Description: "Losses can exceed half."}}
custom := false
tt := tradingTester(GreenUp, 400, 160, func(c *ui.Context) {
if custom {
RiskMeter(c, level, RiskMeterOptions{Levels: levels})
} else {
RiskMeter(c, level, RiskMeterOptions{})
}
})
if !tt.HasText("Moderately high") || !tt.HasText("4 / 5") {
t.Fatalf("default: %q", tt.Texts())
}
custom, level = true, 3
tt.Frame()
if !tt.HasText("Aggressive") || !tt.HasText("Losses can exceed half.") || !tt.HasText("3 / 3") {
t.Fatalf("custom: %q", tt.Texts())
}
defer func() {
if recover() == nil {
t.Fatal("level 0 accepted")
}
}()
tradingTester(GreenUp, 100, 100, func(c *ui.Context) { RiskMeter(c, 0, RiskMeterOptions{}) })
}
func TestRiskMeterSnapshot(t *testing.T) {
snapshot(t, "risk_meter", 320, 110, func(c *ui.Context) {
ui.Column(c).Padding(20).Children(func() {
RiskMeter(c, 4, RiskMeterOptions{Levels: []RiskLevel{{Label: "Low"}, {Label: "Medium"}, {Label: "Elevated"}, {Label: "High", Description: "Suited to experienced traders."}, {Label: "Extreme"}}})
})
})
}