8
. "github.com/onsi/ginkgo/v2"
9
. "github.com/onsi/gomega"
11
"github.com/kumahq/kuma/pkg/config"
12
"github.com/kumahq/kuma/pkg/config/plugins/runtime/universal"
15
var _ = Describe("Config", func() {
16
It("should be loadable from configuration file", func() {
18
cfg := universal.UniversalRuntimeConfig{}
20
err := config.Load(filepath.Join("testdata", "valid-config.input.yaml"), &cfg)
23
Expect(err).ToNot(HaveOccurred())
26
Expect(cfg.DataplaneCleanupAge.Duration).To(Equal(5 * time.Hour))
27
Expect(cfg.VIPRefreshInterval.Duration).To(Equal(5 * time.Second))
30
It("should have consistent defaults", func() {
32
cfg := universal.DefaultUniversalRuntimeConfig()
35
actual, err := config.ToYAML(cfg)
37
Expect(err).ToNot(HaveOccurred())
40
expected, err := os.ReadFile(filepath.Join("testdata", "default-config.golden.yaml"))
42
Expect(err).ToNot(HaveOccurred())
44
Expect(actual).To(MatchYAML(expected))
47
It("should have validators", func() {
49
cfg := universal.UniversalRuntimeConfig{}
52
err := config.Load(filepath.Join("testdata", "invalid-config.input.yaml"), &cfg)
55
Expect(err).To(HaveOccurred())
56
Expect(err.Error()).To(Equal(`Invalid configuration: .DataplaneCleanupAge must be positive; .VIPRefreshInterval must be positive`))