Bugfix
release-tag / release-image (push) Successful in 2m23s

This commit is contained in:
2026-09-01 08:11:16 +02:00
parent 97004838a3
commit c609c34f16
7 changed files with 80 additions and 12 deletions
+28
View File
@@ -29,3 +29,31 @@ func TestArrayPatch(t *testing.T) {
t.Fatal(out)
}
}
func TestAddTopLevelNamedVolumePreservesServiceMounts(t *testing.T) {
src := "services:\n app:\n volumes:\n - db_data:/var/lib/db\n - /srv/app:/data:ro\n x-future: keep\n"
out, err := Apply(src, Patch{Path: []string{"volumes", "db_data"}, Value: map[string]any{}})
if err != nil {
t.Fatal(err)
}
for _, want := range []string{"db_data:/var/lib/db", "/srv/app:/data:ro", "x-future: keep", "volumes:", "db_data:"} {
if !strings.Contains(out, want) {
t.Fatalf("expected %q to be preserved/added:\n%s", want, out)
}
}
parsed, err := Parse(out)
if err != nil {
t.Fatal(err)
}
root, ok := parsed.Value.(map[string]any)
if !ok {
t.Fatalf("unexpected parse result %#v", parsed.Value)
}
vols, ok := root["volumes"].(map[string]any)
if !ok {
t.Fatalf("top-level volumes missing: %#v", root["volumes"])
}
if _, ok := vols["db_data"]; !ok {
t.Fatalf("db_data declaration missing: %#v", vols)
}
}