deep copy values in json_patch copy op to avoid aliasing and cycles

This commit is contained in:
dxbjavid
2026-06-24 21:56:36 +05:30
parent cce075f551
commit 5647679c0c
3 changed files with 28 additions and 4 deletions
+7
View File
@@ -535,6 +535,13 @@
"doc": {"foo":"bar"},
"patch": [{"op": "add", "path": "/FOO", "value": "BAR"}],
"expected": {"foo": "bar", "FOO": "BAR"}
},
{ "comment": "copy must duplicate the value, not alias it, so no cycle can form",
"doc": {"a": {"p": {}}},
"patch": [{"op": "copy", "from": "/a", "path": "/b"},
{"op": "copy", "from": "/b", "path": "/a/p/x"}],
"expected": {"a": {"p": {"x": {"p": {}}}}, "b": {"p": {}}}
}
]