github.com/storacha/go-ucanto@v0.7.2/server/retrieval/datamodel/errors_test.go (about) 1 package datamodel 2 3 import ( 4 "testing" 5 6 "github.com/ipld/go-ipld-prime" 7 "github.com/storacha/go-ucanto/core/ipld/codec/json" 8 "github.com/storacha/go-ucanto/testing/helpers" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestAgentMessageInvocationError(t *testing.T) { 13 t.Run("encode decode", func(t *testing.T) { 14 mdl := AgentMessageInvocationErrorModel{ 15 Name: "AgentMessageInvocationError", 16 Message: "boom", 17 } 18 data, err := json.Encode(&mdl, AgentMessageInvocationErrorType()) 19 require.NoError(t, err) 20 var decoded AgentMessageInvocationErrorModel 21 err = json.Decode(data, &decoded, AgentMessageInvocationErrorType()) 22 require.NoError(t, err) 23 require.Equal(t, mdl.Name, decoded.Name) 24 require.Equal(t, mdl.Message, decoded.Message) 25 }) 26 } 27 28 func TestMissingProofs(t *testing.T) { 29 t.Run("encode decode", func(t *testing.T) { 30 prf := helpers.RandomCID() 31 mdl := MissingProofsModel{ 32 Name: "MissingProofs", 33 Message: "boom", 34 Proofs: []ipld.Link{prf}, 35 } 36 data, err := json.Encode(&mdl, MissingProofsType()) 37 require.NoError(t, err) 38 var decoded MissingProofsModel 39 err = json.Decode(data, &decoded, MissingProofsType()) 40 require.NoError(t, err) 41 require.Equal(t, mdl.Name, decoded.Name) 42 require.Equal(t, mdl.Message, decoded.Message) 43 require.Len(t, decoded.Proofs, 1) 44 require.Equal(t, prf.String(), decoded.Proofs[0].String()) 45 }) 46 }