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  }