evcc-io/cmd/setup_hems_test.go
andig 06f6eb1d26
HEMS: add templates (#25832)
Co-authored-by: Michael Geers <michael@geers.tv>
Co-authored-by: premultiply <4681172+premultiply@users.noreply.github.com>
2026-06-27 14:32:13 +02:00

52 lines
1.4 KiB
Go

package cmd
import (
"testing"
"github.com/evcc-io/evcc/core/keys"
"github.com/evcc-io/evcc/server/db"
"github.com/evcc-io/evcc/server/db/settings"
"github.com/evcc-io/evcc/util/config"
"github.com/evcc-io/evcc/util/templates"
"github.com/stretchr/testify/require"
)
func TestMigrateLegacyHemsSetting(t *testing.T) {
require.NoError(t, db.NewInstance("sqlite", ":memory:"))
require.NoError(t, db.Instance.AutoMigrate(&config.Config{}))
const legacyYaml = `type: relay
maxpower: 4200
limit:
source: mqtt
topic: hems/limit/status
`
settings.SetString(keys.Hems, legacyYaml)
require.NoError(t, migrateLegacyHemsSetting())
require.False(t, settings.Exists(keys.Hems))
devices, err := config.ConfigurationsByClass(templates.Hems)
require.NoError(t, err)
require.Len(t, devices, 1)
require.Equal(t, "custom", devices[0].Type)
require.Equal(t, legacyYaml, devices[0].Data["yaml"])
// second run is a noop
require.NoError(t, migrateLegacyHemsSetting())
devices, err = config.ConfigurationsByClass(templates.Hems)
require.NoError(t, err)
require.Len(t, devices, 1)
}
func TestMigrateLegacyHemsSetting_noop(t *testing.T) {
require.NoError(t, db.NewInstance("sqlite", ":memory:"))
require.NoError(t, db.Instance.AutoMigrate(&config.Config{}))
require.NoError(t, migrateLegacyHemsSetting())
devices, err := config.ConfigurationsByClass(templates.Hems)
require.NoError(t, err)
require.Empty(t, devices)
}