github.com/storacha/go-ucanto@v0.7.2/core/message/message_test.go (about)

     1  package message
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/storacha/go-ucanto/core/invocation"
     7  	"github.com/storacha/go-ucanto/core/ipld"
     8  	"github.com/storacha/go-ucanto/core/receipt"
     9  	"github.com/storacha/go-ucanto/core/receipt/ran"
    10  	"github.com/storacha/go-ucanto/core/result"
    11  	"github.com/storacha/go-ucanto/core/result/ok"
    12  	"github.com/storacha/go-ucanto/testing/fixtures"
    13  	"github.com/storacha/go-ucanto/testing/helpers"
    14  	"github.com/stretchr/testify/require"
    15  )
    16  
    17  func TestMessageReceipts(t *testing.T) {
    18  	t.Run("no receipts", func(t *testing.T) {
    19  		msg, err := Build([]invocation.Invocation{}, []receipt.AnyReceipt{})
    20  		require.NoError(t, err)
    21  
    22  		rcpts := msg.Receipts()
    23  		require.Len(t, rcpts, 0)
    24  
    25  		_, ok := msg.Get(helpers.RandomCID())
    26  		require.False(t, ok)
    27  	})
    28  
    29  	t.Run("one receipt", func(t *testing.T) {
    30  		rcpt, err := receipt.Issue(
    31  			fixtures.Alice,
    32  			result.Ok[ok.Unit, ipld.Builder](ok.Unit{}),
    33  			ran.FromLink(helpers.RandomCID()),
    34  		)
    35  		require.NoError(t, err)
    36  
    37  		msg, err := Build([]invocation.Invocation{}, []receipt.AnyReceipt{rcpt})
    38  		require.NoError(t, err)
    39  
    40  		rcpts := msg.Receipts()
    41  		require.Len(t, rcpts, 1)
    42  
    43  		r, ok, err := msg.Receipt(rcpts[0])
    44  		require.NoError(t, err)
    45  		require.True(t, ok)
    46  		require.Equal(t, rcpt.Root().Link().String(), r.Root().Link().String())
    47  	})
    48  }