1
0
Fork 0
golang-github-nicholas-fedo.../pkg/format/prop_key_resolver_test.go
Daniel Baumann c0c4addb85
Adding upstream version 0.8.9.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-22 10:16:14 +02:00

58 lines
1.7 KiB
Go

package format
import (
"github.com/onsi/ginkgo/v2"
"github.com/onsi/gomega"
"github.com/nicholas-fedor/shoutrrr/pkg/types"
)
var _ = ginkgo.Describe("Prop Key Resolver", func() {
var (
ts *testStruct
pkr PropKeyResolver
)
ginkgo.BeforeEach(func() {
ts = &testStruct{}
pkr = NewPropKeyResolver(ts)
_ = pkr.SetDefaultProps(ts)
})
ginkgo.Describe("Updating config props from params", func() {
ginkgo.When("a param matches a prop key", func() {
ginkgo.It("should be updated in the config", func() {
err := pkr.UpdateConfigFromParams(nil, &types.Params{"str": "newValue"})
gomega.Expect(err).NotTo(gomega.HaveOccurred())
gomega.Expect(ts.Str).To(gomega.Equal("newValue"))
})
})
ginkgo.When("a param does not match a prop key", func() {
ginkgo.It("should report the first error", func() {
err := pkr.UpdateConfigFromParams(nil, &types.Params{"a": "z"})
gomega.Expect(err).To(gomega.HaveOccurred())
})
ginkgo.It("should process the other keys", func() {
_ = pkr.UpdateConfigFromParams(
nil,
&types.Params{"signed": "1", "b": "c", "str": "val"},
)
gomega.Expect(ts.Signed).To(gomega.Equal(1))
gomega.Expect(ts.Str).To(gomega.Equal("val"))
})
})
})
ginkgo.Describe("Setting default props", func() {
ginkgo.When("a default tag are set for a field", func() {
ginkgo.It("should have that value as default", func() {
gomega.Expect(ts.Str).To(gomega.Equal("notempty"))
})
})
ginkgo.When("a default tag have an invalid value", func() {
ginkgo.It("should have that value as default", func() {
tsb := &testStructBadDefault{}
pkr = NewPropKeyResolver(tsb)
err := pkr.SetDefaultProps(tsb)
gomega.Expect(err).To(gomega.HaveOccurred())
})
})
})
})