From 3a59b1e000321c3c90e3eb6aaa5fa84b2626cf32 Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Tue, 13 Sep 2022 10:01:55 +0100
Subject: [PATCH] Add a test for deferred configuration deserialization

---
 backend/backend_test.go | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 backend/backend_test.go

diff --git a/backend/backend_test.go b/backend/backend_test.go
new file mode 100644
index 00000000..ac355c39
--- /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)
+	}
+}
-- 
GitLab