mirror of
https://github.com/bakito/adguardhome-sync.git
synced 2025-10-03 11:34:32 +08:00
45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package config
|
|
|
|
import (
|
|
"github.com/go-faker/faker/v4"
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
"gopkg.in/yaml.v3"
|
|
|
|
"github.com/bakito/adguardhome-sync/internal/types"
|
|
)
|
|
|
|
var _ = Describe("Config", func() {
|
|
Context("validateSchema", func() {
|
|
DescribeTable("validateSchema config",
|
|
func(configFile string, expectFail bool) {
|
|
err := validateSchema(configFile)
|
|
if expectFail {
|
|
Ω(err).Should(HaveOccurred())
|
|
} else {
|
|
Ω(err).ShouldNot(HaveOccurred())
|
|
}
|
|
},
|
|
Entry(`Should be valid`, "../../testdata/config/config-valid.yaml", false),
|
|
Entry(`Should be valid if file doesn't exist`, "../../testdata/config/foo.bar", false),
|
|
Entry(`Should fail if file is not yaml`, "../../go.mod", true),
|
|
)
|
|
It("validate config with all fields randomly populated", func() {
|
|
cfg := &types.Config{}
|
|
|
|
err := faker.FakeData(cfg)
|
|
Ω(err).ShouldNot(HaveOccurred())
|
|
|
|
data, err := yaml.Marshal(&cfg)
|
|
Ω(err).ShouldNot(HaveOccurred())
|
|
|
|
err = validateYAML(data)
|
|
Ω(err).ShouldNot(HaveOccurred())
|
|
})
|
|
It("validate config with empty file", func() {
|
|
var data []byte
|
|
err := validateYAML(data)
|
|
Ω(err).ShouldNot(HaveOccurred())
|
|
})
|
|
})
|
|
})
|