Add first basic unit test for client/config
This commit is contained in:
parent
1dcac05cee
commit
337e974a26
1 changed files with 56 additions and 0 deletions
56
client/config_test.go
Normal file
56
client/config_test.go
Normal file
|
@ -0,0 +1,56 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"github.com/sirupsen/logrus"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestGenerateExampleConfig(t *testing.T) {
|
||||
testOutput := bytes.Buffer{}
|
||||
logrus.SetOutput(&testOutput)
|
||||
|
||||
config, err := generateExampleConfig("test.yaml")
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error %v", err)
|
||||
}
|
||||
|
||||
if config.SerialAddress != "/dev/ttyUSB0" {
|
||||
t.Errorf("got %s instead of expected serial address /dev/ttyUSB0", config.SerialAddress)
|
||||
}
|
||||
|
||||
if config.BaudRate != 115200 {
|
||||
t.Errorf("got %d instead of expected baud rate 115200", config.BaudRate)
|
||||
}
|
||||
|
||||
logOutput := testOutput.String()
|
||||
if !strings.Contains(logOutput, "test.yaml") {
|
||||
t.Error("logged instructions do not contain the file name test.yaml")
|
||||
}
|
||||
|
||||
if !strings.Contains(logOutput, "---\\n") {
|
||||
t.Errorf("logged instructions do not contain a yaml prefix: \n%s", logOutput)
|
||||
}
|
||||
|
||||
yamlKeys := []string{"serial_address", "serial_baudrate", "paranoid", "debug", "gnupg_bin", "openssl_bin", "mysql_dsn"}
|
||||
for _, item := range yamlKeys {
|
||||
if !strings.Contains(logOutput, item) {
|
||||
t.Errorf("%s missing in example log output", item)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestReadConfigNonExistingFile(t *testing.T) {
|
||||
config, err := readConfig("nonExistant.yaml")
|
||||
|
||||
if err != nil {
|
||||
t.Errorf("unexpected error %v", err)
|
||||
}
|
||||
|
||||
exampleConfig, _ := generateExampleConfig("nonExistant.yaml")
|
||||
if config != exampleConfig {
|
||||
t.Errorf("expected example config but got %+v", config)
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue