Merge provider defaults into one owned copy
This commit is contained in:
@@ -42,6 +42,28 @@ func TestLoadIndexesIdentifiedTargets(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestOverlayProviderMapOwnsInputsAndReplacesValues(t *testing.T) {
|
||||
lower := map[string]any{"nested": map[string]any{"keep": "lower", "replace": []any{"old"}, "null": "old"}, "disjoint": []any{"original"}}
|
||||
upper := map[string]any{"nested": map[string]any{"replace": []any{"new"}, "null": nil, "added": map[string]any{"value": "upper"}}}
|
||||
got, err := overlayProviderMap(lower, upper)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
want := map[string]any{"nested": map[string]any{"keep": "lower", "replace": []any{"new"}, "null": nil, "added": map[string]any{"value": "upper"}}, "disjoint": []any{"original"}}
|
||||
if !reflect.DeepEqual(got, want) {
|
||||
t.Fatalf("overlay = %#v", got)
|
||||
}
|
||||
lower["disjoint"].([]any)[0] = "changed"
|
||||
upper["nested"].(map[string]any)["replace"].([]any)[0] = "changed"
|
||||
if !reflect.DeepEqual(got, want) {
|
||||
t.Fatalf("overlay shares input storage: %#v", got)
|
||||
}
|
||||
got["nested"].(map[string]any)["added"].(map[string]any)["value"] = "changed"
|
||||
if upper["nested"].(map[string]any)["added"].(map[string]any)["value"] != "upper" {
|
||||
t.Fatal("result mutation reached upper")
|
||||
}
|
||||
}
|
||||
|
||||
func TestRequestCompletesLoadedPartialProfile(t *testing.T) {
|
||||
state, err := load(mapping("partial profile", map[string]any{
|
||||
"profiles": []any{map[string]any{"id": "partial"}},
|
||||
|
||||
Reference in New Issue
Block a user