diff --git a/backend/backend_test.go b/backend/backend_test.go new file mode 100644 index 0000000000000000000000000000000000000000..ac355c39b3e8cda86693a3c60a07d64131afa829 --- /dev/null +++ b/backend/backend_test.go @@ -0,0 +1,37 @@ +package backend + +import ( + "testing" + + "gopkg.in/yaml.v3" +) + +var testYAML = `--- +type: "test-type" +params: + param1: 42 + param2: foo +` + +type testParams struct { + Param1 int `yaml:"param1"` + Param2 string `yaml:"param2"` +} + +func TestPartialConfigDeserialization(t *testing.T) { + var c Config + var p testParams + + if err := yaml.Unmarshal([]byte(testYAML), &c); err != nil { + t.Fatalf("first unmarshal: %v", err) + } + if err := c.Params.Decode(&p); err != nil { + t.Fatalf("second unmarshal: %v", err) + } + if p.Param1 != 42 { + t.Errorf("param1 is %d, expected 42", p.Param1) + } + if p.Param2 != "foo" { + t.Errorf("param2 is '%s', expected 'foo'", p.Param2) + } +}