Modernize invertergui: MQTT write support, HA integration, UI updates
Some checks failed
build / inverter_gui_pipeline (push) Has been cancelled
Some checks failed
build / inverter_gui_pipeline (push) Has been cancelled
This commit is contained in:
@@ -36,7 +36,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/diebietse/invertergui/mk2driver"
|
||||
"invertergui/mk2driver"
|
||||
)
|
||||
|
||||
type templateTest struct {
|
||||
@@ -91,3 +91,53 @@ func TestTemplateInput(t *testing.T) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestParsePanelMode(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
input string
|
||||
want mk2driver.PanelSwitchState
|
||||
wantRaw string
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "on",
|
||||
input: "on",
|
||||
want: mk2driver.PanelSwitchOn,
|
||||
wantRaw: "on",
|
||||
},
|
||||
{
|
||||
name: "charger_only",
|
||||
input: "charger_only",
|
||||
want: mk2driver.PanelSwitchChargerOnly,
|
||||
wantRaw: "charger_only",
|
||||
},
|
||||
{
|
||||
name: "invalid",
|
||||
input: "banana",
|
||||
wantErr: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got, gotRaw, err := parsePanelMode(tt.input)
|
||||
if tt.wantErr {
|
||||
if err == nil {
|
||||
t.Fatal("expected error, got nil")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
if got != tt.want {
|
||||
t.Fatalf("got switch %d, want %d", got, tt.want)
|
||||
}
|
||||
if gotRaw != tt.wantRaw {
|
||||
t.Fatalf("got mode %q, want %q", gotRaw, tt.wantRaw)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user