Precompute canonical paths before sorting
This commit is contained in:
@@ -117,3 +117,26 @@ func TestOwnedOverlayKeepsCompositeContributorsAndAcquiredInputs(t *testing.T) {
|
||||
t.Fatal("working tree mutation changed an acquired input")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDisplacedOriginsSortEscapedPointers(t *testing.T) {
|
||||
input := parseCompositionDocument(t, "source-1", `values:
|
||||
z: old
|
||||
a/b: slash
|
||||
a~b: tilde
|
||||
nested: {x: old}
|
||||
`)
|
||||
composed, diagnostics := composeDocuments(input)
|
||||
if len(diagnostics) != 0 {
|
||||
t.Fatal(diagnostics)
|
||||
}
|
||||
displaced := displacedOrigins(composed.root, composed.origins, Path{})
|
||||
want := []string{"", "/values", "/values/a~0b", "/values/a~1b", "/values/nested", "/values/nested/x", "/values/z"}
|
||||
if len(displaced) != len(want) {
|
||||
t.Fatalf("displaced definitions = %d, want %d", len(displaced), len(want))
|
||||
}
|
||||
for i, definition := range displaced {
|
||||
if got := definition.path.String(); got != want[i] {
|
||||
t.Fatalf("displaced[%d] path = %q, want %q", i, got, want[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user