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 }