43 lines
1.3 KiB
Go
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"}}})
|
|
})
|
|
})
|
|
}
|