github.com/storacha/go-ucanto@v0.7.2/transport/headercar/message/header_test.go (about) 1 package message 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/storacha/go-ucanto/core/invocation" 8 "github.com/storacha/go-ucanto/core/message" 9 "github.com/storacha/go-ucanto/testing/fixtures" 10 "github.com/storacha/go-ucanto/ucan" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestRoundTrip(t *testing.T) { 15 inv, err := invocation.Invoke( 16 fixtures.Alice, 17 fixtures.Service, 18 ucan.NewCapability( 19 "test/invoke", 20 fixtures.Alice.DID().String(), 21 ucan.NoCaveats{}, 22 ), 23 ) 24 require.NoError(t, err) 25 26 msg, err := message.Build([]invocation.Invocation{inv}, nil) 27 require.NoError(t, err) 28 29 s, err := EncodeHeader(msg) 30 require.NoError(t, err) 31 32 fmt.Printf("X-Agent-Message: %s (%d bytes)\n", s, len(s)) 33 34 _, err = DecodeHeader(s) 35 require.NoError(t, err) 36 } 37 38 func TestEncodeHeaderTooLarge(t *testing.T) { 39 inv, err := invocation.Invoke( 40 fixtures.Alice, 41 fixtures.Service, 42 ucan.NewCapability( 43 "test/invoke", 44 fixtures.Alice.DID().String(), 45 ucan.NoCaveats{}, 46 ), 47 ) 48 require.NoError(t, err) 49 50 msg, err := message.Build([]invocation.Invocation{inv}, nil) 51 require.NoError(t, err) 52 53 s, err := EncodeHeader(msg, WithMaxSize(1)) 54 require.Empty(t, s) 55 require.ErrorIs(t, err, ErrHeaderTooLarge) 56 }