]> git.giacomolli.uk - onehouse/blob - driver/alamo/control_settings_test.go
Share the Alamo gateway request budget
[onehouse] / driver / alamo / control_settings_test.go
1 package alamo
2
3 import (
4 "encoding/json"
5 "testing"
6
7 "github.com/stretchr/testify/require"
8 )
9
10 func TestControlSettingsRequiresCompleteSupportedValues(t *testing.T) {
11 for _, value := range []string{`null`, `{}`, `{"mode":"heat"}`, `{"mode":"heat","target_temperature":null}`, `{"mode":"cool","target_temperature":20}`, `{"mode":"heat","target_temperature":20,"extra":1}`, `{"mode":"off","target_temperature":20} {}`, `[]`, `{"mode":"heat","target_temperature":"20"}`} {
12 _, err := decodeControl(json.RawMessage(value))
13 require.Error(t, err)
14 }
15
16 for _, mode := range []string{"off", "heat"} {
17 settings, err := decodeControl(json.RawMessage(`{"mode":"` + mode + `","target_temperature":21.5}`))
18 require.NoError(t, err)
19 require.Equal(t, mode, settings.Mode)
20 require.InDelta(t, 21.5, settings.TargetTemperature, 0.001)
21 }
22 }