Updated config file and config struct
All checks were successful
Golan Testing / testing (1.24.x, ubuntu-latest) (push) Successful in 23s

This commit is contained in:
2025-05-27 22:52:02 -04:00
parent c00d0d4abf
commit ea31ffb651
5 changed files with 266 additions and 659 deletions

93
config/config_test.go Normal file
View File

@ -0,0 +1,93 @@
package config
import (
"log/slog"
"os"
"testing"
"github.com/stretchr/testify/require"
)
var (
yamlBytes = []byte(`
mysubaru:
credentials:
username: username@mysubaru.golang
password: "PASSWORD"
pin: "1234"
deviceid: AaBbCcDdEeFf0123456789
devicename: MySubaru Golang Client
region: USA
auto_reconnect: true
timezone: "America/New_York"
logging:
level: INFO
output: TEXT
source: false
`)
jsonBytes = []byte(`{
"mysubaru": {
"credentials": {
"username": "username@mysubaru.golang",
"password": "PASSWORD",
"pin": "1234",
"deviceid": "AaBbCcDdEeFf0123456789",
"devicename": "MySubaru Golang Client"
},
"region": "USA",
"auto_reconnect": true
},
"timezone": "America/New_York",
"logging": {
"level": "INFO",
"output": "TEXT",
"source": false
}
}
`)
parsedOptions = Config{
MySubaru: MySubaru{
Credentials: Credentials{
Username: "username@mysubaru.golang",
Password: "PASSWORD",
PIN: "1234",
DeviceID: "AaBbCcDdEeFf0123456789",
DeviceName: "MySubaru Golang Client",
},
Region: "USA",
AutoReconnect: true,
},
TimeZone: "America/New_York",
Logger: slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
Level: slog.LevelInfo,
})),
}
)
func TestFromBytesEmptyL(t *testing.T) {
_, err := FromBytes([]byte{})
require.NoError(t, err)
}
func TestFromBytesYAML(t *testing.T) {
o, err := FromBytes(yamlBytes)
require.NoError(t, err)
require.Equal(t, parsedOptions, *o)
}
func TestFromBytesYAMLError(t *testing.T) {
_, err := FromBytes(append(yamlBytes, 'a'))
require.Error(t, err)
}
func TestFromBytesJSON(t *testing.T) {
o, err := FromBytes(jsonBytes)
require.NoError(t, err)
require.Equal(t, parsedOptions, *o)
}
func TestFromBytesJSONError(t *testing.T) {
_, err := FromBytes(append(jsonBytes, 'a'))
require.Error(t, err)
}