Skip to content

Commit

Permalink
Merge pull request #111 from thaJeztah/revert_RFC6902
Browse files Browse the repository at this point in the history
Revert "Conform to RFC6902 replacement semantics" for v4.x
  • Loading branch information
evanphx committed Aug 8, 2020
2 parents 17efcbe + 4c18d30 commit 1d4c88e
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 33 deletions.
10 changes: 3 additions & 7 deletions patch.go
Original file line number Diff line number Diff line change
Expand Up @@ -392,17 +392,13 @@ func (d *partialDoc) add(key string, val *lazyNode) error {
}

func (d *partialDoc) get(key string) (*lazyNode, error) {
v, ok := (*d)[key]
if !ok {
return v, errors.Wrapf(ErrMissing, "unable to get nonexistent key: %s", key)
}
return v, nil
return (*d)[key], nil
}

func (d *partialDoc) remove(key string) error {
_, ok := (*d)[key]
if !ok {
return errors.Wrapf(ErrMissing, "unable to remove nonexistent key: %s", key)
return errors.Wrapf(ErrMissing, "Unable to remove nonexistent key: %s", key)
}

delete(*d, key)
Expand Down Expand Up @@ -624,7 +620,7 @@ func (p Patch) test(doc *container, op Operation) error {
}

val, err := con.get(key)
if err != nil && errors.Cause(err) != ErrMissing {
if err != nil {
return errors.Wrapf(err, "error in test for path: '%s'", path)
}

Expand Down
26 changes: 0 additions & 26 deletions patch_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,11 +186,6 @@ var Cases = []Case{
`[{"op": "copy", "path": "/foo/0", "from": "/foo"}]`,
`{ "foo": [["bar"], "bar"]}`,
},
{
`{ "foo": null}`,
`[{"op": "copy", "path": "/bar", "from": "/foo"}]`,
`{ "foo": null, "bar": null}`,
},
{
`{ "foo": ["bar","qux","baz"]}`,
`[ { "op": "remove", "path": "/foo/-2"}]`,
Expand Down Expand Up @@ -337,15 +332,6 @@ var BadCases = []BadCase{
`{ "foo": [ "all", "grass", "cows", "eat" ] }`,
`[ { "op": "move", "from": "/foo/1", "path": "/foo/4" } ]`,
},
{
`{ "baz": "qux" }`,
`[ { "op": "replace", "path": "/foo", "value": "bar" } ]`,
},
// Can't copy from non-existent "from" key.
{
`{ "foo": "bar"}`,
`[{"op": "copy", "path": "/qux", "from": "/baz"}]`,
},
}

// This is not thread safe, so we cannot run patch tests in parallel.
Expand Down Expand Up @@ -473,18 +459,6 @@ var TestCases = []TestCase{
false,
"/foo",
},
{
`{ "foo": "bar" }`,
`[ { "op": "test", "path": "/baz", "value": "bar" } ]`,
false,
"/baz",
},
{
`{ "foo": "bar" }`,
`[ { "op": "test", "path": "/baz", "value": null } ]`,
true,
"/baz",
},
}

func TestAllTest(t *testing.T) {
Expand Down

0 comments on commit 1d4c88e

Please sign in to comment.