AdGuardHome/internal/next/jsonpatch/jsonpatch_test.go
Ainar Garipov d3cc2dc930 Pull request 2319: websvc-patch
Merge in DNS/adguard-home from websvc-patch to master

Squashed commit of the following:

commit b2a10faf12b16f13f617b3ed3ef3e81cb0479ff8
Merge: 38f749106 8f53f6505
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Wed Dec 11 17:33:15 2024 +0300

    Merge branch 'master' into websvc-patch

commit 38f7491069
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Tue Dec 10 19:57:54 2024 +0300

    next: add json merge patch utils
2024-12-11 17:41:00 +03:00

29 lines
580 B
Go

package jsonpatch_test
import (
"encoding/json"
"testing"
"github.com/AdguardTeam/AdGuardHome/internal/next/jsonpatch"
"github.com/AdguardTeam/golibs/testutil"
"github.com/stretchr/testify/assert"
)
func TestNonRemovable(t *testing.T) {
type T struct {
Value jsonpatch.NonRemovable[int] `json:"value"`
}
var v T
err := json.Unmarshal([]byte(`{"value":null}`), &v)
testutil.AssertErrorMsg(t, "property cannot be removed", err)
err = json.Unmarshal([]byte(`{"value":42}`), &v)
assert.NoError(t, err)
var got int
v.Value.Set(&got)
assert.Equal(t, 42, got)
}