Add overlay migration regression coverage
This commit is contained in:
@@ -98,6 +98,7 @@ func TestLoadOverlaySelectionUsesOneFixedYAMLFile(t *testing.T) {
|
||||
directory := t.TempDir()
|
||||
mainPath := writeImportFile(t, directory, "main.yml", "settings: {kept: base}\n")
|
||||
writeImportFile(t, directory, "overlays/testing.yml", "settings: {changed: selected}\n")
|
||||
writeImportFile(t, directory, "profiles/testing.yml", "settings: {changed: legacy}\n")
|
||||
writeImportFile(t, directory, "overlays/default.yml", "settings: {changed: forbidden}\n")
|
||||
|
||||
for _, name := range []string{"", "default"} {
|
||||
@@ -107,10 +108,18 @@ func TestLoadOverlaySelectionUsesOneFixedYAMLFile(t *testing.T) {
|
||||
}
|
||||
}
|
||||
selected, err := testLoad[overlayTestConfig](File(mainPath), Options[overlayTestConfig]{Overlay: "testing"})
|
||||
if err != nil || selected.Config.Settings.Changed != "selected" || len(selected.Sources()) != 2 {
|
||||
if err != nil || selected.Config.Settings.Changed != "selected" || len(selected.Sources()) != 2 ||
|
||||
selected.Sources()[1].Label != "overlays/testing.yml" || selected.Sources()[1].Layer != LayerOverlay {
|
||||
t.Fatalf("selected overlay = %#v, %v", selected, err)
|
||||
}
|
||||
|
||||
t.Run("legacy directory is not selected", func(t *testing.T) {
|
||||
legacyDirectory := t.TempDir()
|
||||
legacyMain := writeImportFile(t, legacyDirectory, "main.yml", "settings: {kept: base}\n")
|
||||
writeImportFile(t, legacyDirectory, "profiles/testing.yml", "settings: {changed: legacy}\n")
|
||||
requireOverlayLoadCode(t, File(legacyMain), Options[overlayTestConfig]{Overlay: "testing"}, CodeOverlayMissing)
|
||||
})
|
||||
|
||||
for _, name := range []string{"../testing", "testing.yml", "one,two", "with space", "é", "bad\x00name"} {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
requireOverlayLoadCode(t, File(mainPath), Options[overlayTestConfig]{Overlay: name}, CodeOptionsInvalid)
|
||||
|
||||
Reference in New Issue
Block a user