summaryrefslogtreecommitdiff
path: root/internal/configuration/provider_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/configuration/provider_test.go')
-rw-r--r--internal/configuration/provider_test.go58
1 files changed, 57 insertions, 1 deletions
diff --git a/internal/configuration/provider_test.go b/internal/configuration/provider_test.go
index 390ac4532..40e399769 100644
--- a/internal/configuration/provider_test.go
+++ b/internal/configuration/provider_test.go
@@ -1165,6 +1165,48 @@ func TestShouldFailIfYmlIsInvalid(t *testing.T) {
assert.ErrorContains(t, val.Errors()[0], "unmarshal errors")
}
+func TestConfigurationDefinitions(t *testing.T) {
+ var (
+ definitions *schema.Definitions
+ err error
+ )
+
+ val := schema.NewStructValidator()
+
+ config := &schema.Configuration{}
+
+ sources := NewDefaultSourcesWithDefaults([]string{"./test_resources/config_with_definitions.yml"}, nil, DefaultEnvPrefix, DefaultEnvDelimiter, nil)
+
+ definitions, err = LoadDefinitions(val, sources...)
+
+ require.NoError(t, err)
+
+ _, err = LoadAdvanced(val, "", config, definitions, sources...)
+
+ require.NoError(t, err)
+
+ require.Len(t, config.Definitions.Network, 2)
+
+ require.Contains(t, config.Definitions.Network, "lan")
+ require.Len(t, config.Definitions.Network["lan"], 2)
+ assert.Equal(t, "192.168.1.0/24", config.Definitions.Network["lan"][0].String())
+ assert.Equal(t, "192.168.2.0/24", config.Definitions.Network["lan"][1].String())
+
+ require.Contains(t, config.Definitions.Network, "abc")
+ require.Len(t, config.Definitions.Network["abc"], 2)
+ assert.Equal(t, "192.168.3.0/24", config.Definitions.Network["abc"][0].String())
+ assert.Equal(t, "192.168.4.0/24", config.Definitions.Network["abc"][1].String())
+
+ require.Len(t, config.AccessControl.Rules, 12)
+ require.Len(t, config.AccessControl.Rules[1].Networks, 5)
+
+ assert.Equal(t, "192.168.0.0/24", config.AccessControl.Rules[1].Networks[0].String())
+ assert.Equal(t, "192.168.1.0/24", config.AccessControl.Rules[1].Networks[1].String())
+ assert.Equal(t, "192.168.2.0/24", config.AccessControl.Rules[1].Networks[2].String())
+ assert.Equal(t, "192.168.3.0/24", config.AccessControl.Rules[1].Networks[3].String())
+ assert.Equal(t, "192.168.4.0/24", config.AccessControl.Rules[1].Networks[4].String())
+}
+
func TestConfigurationTemplate(t *testing.T) {
buf := &bytes.Buffer{}
@@ -1242,7 +1284,21 @@ func TestConfigurationTemplate(t *testing.T) {
val := schema.NewStructValidator()
- keys, _, err := Load(val, NewBytesSource(config))
+ var (
+ keys []string
+ definitions *schema.Definitions
+ )
+
+ c := &schema.Configuration{}
+
+ src := NewBytesSource(config)
+
+ definitions, err = LoadDefinitions(val, src)
+
+ require.NoError(t, err)
+
+ keys, err = LoadAdvanced(val, "", c, definitions, src)
+
require.NoError(t, err)
assert.Len(t, val.Errors(), 0)