From 8932d69f368daeee510dce13721d0ee491185526 Mon Sep 17 00:00:00 2001 From: 0xmuralik Date: Thu, 9 Mar 2023 00:47:04 +0530 Subject: [PATCH] fix unit test CID --- utils/json.go | 16 ++++------------ utils/json_test.go | 18 ++++++++---------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/utils/json.go b/utils/json.go index 5bb934ba..72309576 100644 --- a/utils/json.go +++ b/utils/json.go @@ -10,7 +10,6 @@ import ( canonicalJson "github.com/gibson042/canonicaljson-go" "github.com/ipfs/go-cid" - cbor "github.com/ipfs/go-ipld-cbor" "github.com/ipld/go-ipld-prime/codec/dagcbor" "github.com/ipld/go-ipld-prime/codec/dagjson" "github.com/ipld/go-ipld-prime/linking" @@ -18,7 +17,6 @@ import ( "github.com/ipld/go-ipld-prime/multicodec" basicnode "github.com/ipld/go-ipld-prime/node/basic" "github.com/ipld/go-ipld-prime/storage/memstore" - mh "github.com/multiformats/go-multihash" ) var store = memstore.Store{} @@ -43,16 +41,6 @@ func GenerateHash(json map[string]interface{}) (string, []byte, error) { return cidString, content, nil } -// CIDFromJSONBytes returns CID (cbor) for json (as bytes). -func CIDFromJSONBytes(content []byte) (string, error) { - cid, err := cbor.FromJSON(bytes.NewReader(content), mh.SHA2_256, -1) - if err != nil { - return "", err - } - - return cid.String(), nil -} - // GetAttributeAsString returns a map attribute as string, if possible. func GetAttributeAsString(obj map[string]interface{}, attr string) (string, error) { if value, ok := obj[attr]; ok { @@ -70,6 +58,10 @@ func GetAttributeAsString(obj map[string]interface{}, attr string) (string, erro // This is combination of samples for unmarshalling and linking // see: https://pkg.go.dev/github.com/ipld/go-ipld-prime func CIDFromJSONBytesUsingIpldPrime(content []byte) (string, error) { + if len(content) == 0 { + return "", nil + } + np := basicnode.Prototype.Any // Pick a stle for the in-memory data. nb := np.NewBuilder() // Create a builder. err := dagjson.Decode(nb, bytes.NewReader(content)) // Hand the builder to decoding -- decoding will fill it in! diff --git a/utils/json_test.go b/utils/json_test.go index 36e94c20..45e345e2 100644 --- a/utils/json_test.go +++ b/utils/json_test.go @@ -1,8 +1,9 @@ package utils import ( - "github.com/stretchr/testify/require" "testing" + + "github.com/stretchr/testify/require" ) func TestAndValidateCIDGeneration(t *testing.T) { @@ -11,13 +12,12 @@ func TestAndValidateCIDGeneration(t *testing.T) { content string expected string }{ - // empty string and empty json blows up - // { - // "empty string", "", "bafyreiengp2sbi6ez34a2jctv34bwyjl7yoliteleaswgcwtqzrhmpyt2m", - // }, - // { - // "empty json", "{}", "bafyreihpfkdvib5muloxlj5b3tgdwibjdcu3zdsuhyft33z7gtgnlzlkpm", - // }, + { + "empty string", "", "", + }, + { + "empty json", "{}", "bafyreigbtj4x7ip5legnfznufuopl4sg4knzc2cof6duas4b3q2fy6swua", + }, { "test record", "{\"build_artifact_cid\":\"QmP8jTG1m9GSDJLCbeWhVSVgEzCPPwXRdCRuJtQ5Tz9Kc9\",\"repo_registration_record_cid\":\"QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D\",\"tls_cert_cid\":\"QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR\",\"type\":\"WebsiteRegistrationRecord\",\"url\":\"https://cerc.io\",\"version\":\"0.0.1\"}", @@ -26,10 +26,8 @@ func TestAndValidateCIDGeneration(t *testing.T) { } for _, tc := range testCases { - deprecatedAndCorrect, _ := CIDFromJSONBytes([]byte(tc.content)) newImpl, err := CIDFromJSONBytesUsingIpldPrime([]byte(tc.content)) require.NoError(t, err) - require.Equal(t, deprecatedAndCorrect, newImpl, tc.name) require.Equal(t, tc.expected, newImpl) } }