2024-11-05 08:39:43 -05:00
|
|
|
package invocation_test
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"testing"
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
|
"github.com/stretchr/testify/require"
|
2024-11-05 17:39:39 +01:00
|
|
|
|
2024-11-05 08:39:43 -05:00
|
|
|
"github.com/ucan-wg/go-ucan/token/invocation"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestSealUnsealRoundtrip(t *testing.T) {
|
|
|
|
|
t.Parallel()
|
|
|
|
|
|
|
|
|
|
privKey, iss, sub, cmd, args, prf, meta, err := setupExampleNew()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
2024-11-05 17:39:39 +01:00
|
|
|
tkn1, err := invocation.New(iss, sub, cmd, prf,
|
2024-11-05 08:39:43 -05:00
|
|
|
invocation.WithArguments(args),
|
|
|
|
|
invocation.WithMeta("env", "development"),
|
|
|
|
|
invocation.WithMeta("tags", meta["tags"]),
|
|
|
|
|
invocation.WithExpirationIn(time.Minute),
|
2024-11-05 17:39:39 +01:00
|
|
|
invocation.WithoutInvokedAt(),
|
|
|
|
|
)
|
2024-11-05 08:39:43 -05:00
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
data, cid1, err := tkn1.ToSealed(privKey)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
tkn2, cid2, err := invocation.FromSealed(data)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
|
|
assert.Equal(t, cid1, cid2)
|
|
|
|
|
assert.Equal(t, tkn1, tkn2)
|
|
|
|
|
}
|