36 lines
1.4 KiB
Go
36 lines
1.4 KiB
Go
package consumers_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
|
"gitea.maximumdirect.net/eric/ConfigKit/examples/consumers"
|
|
)
|
|
|
|
func TestPresetCatalogOneLoadAndDerivation(t *testing.T) {
|
|
result, err := consumers.LoadPresets(configkit.File(fixture("inheritance", "presets.yml")))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if result.Config.Presets["base"].Settings["secondary"]["width"] != 10 ||
|
|
result.Config.Presets["custom"].Settings["secondary"]["width"] != 20 ||
|
|
result.Config.Presets["custom"].Enabled {
|
|
t.Fatalf("expanded presets = %#v", result.Config.Presets)
|
|
}
|
|
enabled := configkit.Keys("presets", "custom", "enabled")
|
|
if !result.Metadata().IsExplicit(enabled) {
|
|
t.Fatal("inherited false lost explicit presence")
|
|
}
|
|
info, found := result.Metadata().Lookup(enabled)
|
|
if !found || info.Origin.Locations[0].SourceID != "source-1" ||
|
|
len(info.Origin.Inheritance) != 1 || info.Origin.Inheritance[0].From.String() != "/presets/base/enabled" {
|
|
t.Fatalf("origin and derivation = %#v, %v", info, found)
|
|
}
|
|
nested := configkit.Keys("presets", "custom", "settings", "secondary", "width")
|
|
info, found = result.Metadata().Lookup(nested)
|
|
if !found || len(info.Origin.Inheritance) != 1 ||
|
|
info.Origin.Inheritance[0].From.String() != "/presets/custom/settings/primary/width" {
|
|
t.Fatalf("destination-local derivation = %#v, %v", info, found)
|
|
}
|
|
}
|