test(delegation): move the other relevant tests from the envelope branch

This commit is contained in:
Steve Moyer
2024-09-18 15:54:46 -04:00
parent 55070dcb43
commit c7f6034376
4 changed files with 44 additions and 35 deletions

View File

@@ -3,10 +3,17 @@ package delegation_test
import (
"crypto/rand"
"testing"
"time"
"github.com/ipld/go-ipld-prime/datamodel"
"github.com/ipld/go-ipld-prime/node/basicnode"
"github.com/libp2p/go-libp2p/core/crypto"
"github.com/stretchr/testify/require"
"github.com/ucan-wg/go-ucan/capability/command"
"github.com/ucan-wg/go-ucan/capability/policy"
"github.com/ucan-wg/go-ucan/delegation"
"github.com/ucan-wg/go-ucan/did"
"gotest.tools/v3/golden"
)
const (
@@ -60,55 +67,56 @@ const (
`
)
// func TestConstructors(t *testing.T) {
// t.Parallel()
func TestConstructors(t *testing.T) {
t.Parallel()
// privKey := privKey(t, issuerPrivKeyCfg)
privKey := privKey(t, issuerPrivKeyCfg)
// aud, err := did.Parse(AudienceDID)
aud, err := did.Parse(AudienceDID)
// sub, err := did.Parse(subjectDID)
// require.NoError(t, err)
sub, err := did.Parse(subjectDID)
require.NoError(t, err)
// cmd, err := command.Parse(subJectCmd)
// require.NoError(t, err)
cmd, err := command.Parse(subJectCmd)
require.NoError(t, err)
// pol, err := policy.FromDagJson(subjectPol)
// require.NoError(t, err)
pol, err := policy.FromDagJson(subjectPol)
require.NoError(t, err)
// exp := time.Time{}
exp, err := time.Parse(time.RFC3339, "2200-01-01T00:00:00Z")
require.NoError(t, err)
// meta := map[string]datamodel.Node{
// "foo": basicnode.NewString("fooo"),
// "bar": basicnode.NewString("barr"),
// }
meta := map[string]datamodel.Node{
"foo": basicnode.NewString("fooo"),
"bar": basicnode.NewString("barr"),
}
// t.Run("New", func(t *testing.T) {
// dlg, err := delegation.New(privKey, aud, &sub, cmd, pol, []byte(nonce), delegation.WithExpiration(&exp), delegation.WithMeta(meta))
// require.NoError(t, err)
t.Run("New", func(t *testing.T) {
dlg, err := delegation.New(privKey, aud, cmd, pol, []byte(nonce), delegation.WithSubject(sub), delegation.WithExpiration(exp), delegation.WithMetadata(meta))
require.NoError(t, err)
// data, err := dlg.ToDagJson()
// require.NoError(t, err)
data, err := dlg.ToDagJson(privKey)
require.NoError(t, err)
// t.Log(string(data))
t.Log(string(data))
// golden.Assert(t, string(data), "new.dagjson")
// })
golden.Assert(t, string(data), "new.dagjson")
})
// t.Run("Root", func(t *testing.T) {
// t.Parallel()
t.Run("Root", func(t *testing.T) {
t.Parallel()
// dlg, err := delegation.Root(privKey, aud, cmd, pol, []byte(nonce), delegation.WithExpiration(&exp), delegation.WithMeta(meta))
// require.NoError(t, err)
dlg, err := delegation.Root(privKey, aud, cmd, pol, []byte(nonce), delegation.WithExpiration(exp), delegation.WithMetadata(meta))
require.NoError(t, err)
// data, err := dlg.ToDagJson()
// require.NoError(t, err)
data, err := dlg.ToDagJson(privKey)
require.NoError(t, err)
// t.Log(string(data))
t.Log(string(data))
// golden.Assert(t, string(data), "root.dagjson")
// })
// }
golden.Assert(t, string(data), "root.dagjson")
})
}
func privKey(t *testing.T, privKeyCfg string) crypto.PrivKey {
t.Helper()

View File

@@ -164,5 +164,5 @@ func FromIPLD(node datamodel.Node) (*Token, error) {
return nil, err
}
return viewFromModel(*tkn)
return tokenFromModel(*tkn)
}

View File

@@ -1 +1 @@
[{"/":{"bytes":"P2lPLfdMuZuc4NPZ0mbozU+/bn5xoWlJsu+Fvaxi4ICYXVJb9/wiTTht3WJEFqjxXLxfTl4BMZF3J1CNvMPqBg"}},{"h":{"/":{"bytes":"NO0BcQ"}},"ucan/dlg@1.0.0-rc.1":{"aud":"did:key:z6Mkq5YmbJcTrPExNDi26imrTCpKhepjBFBSHqrBDN2ArPkv","cmd":"/foo/bar","exp":-62135596800,"iss":"did:key:z6Mkpzn2n3ZGT2VaqMGSQC3tzmzV4TS9S71iFsDXE1WnoNH2","meta":{"bar":"barr","foo":"fooo"},"nonce":{"/":{"bytes":"NnJvRGhHaTBraU5yaVFBejdKM2QrYk9lb0kvdGo4RU5pa21RTmJ0am5EMA"}},"pol":[["==",".status","draft"],["all",".reviewer",["like",".email","*@example.com"]],["any",".tags",["or",[["==",".","news"],["==",".","press"]]]]],"sub":"did:key:z6MktA1uBdCpq4uJBqE9jjMiLyxZBg9a6xgPPKJjMqss6Zc2"}}]
[{"/":{"bytes":"FM6otj0r/noJWiGAC5WV86xAazxrF173IihuHJgEt35CtSzjeaelrR3UwaSr8xbE9sLpo5xJhUbo0QLI273hDA"}},{"h":{"/":{"bytes":"NO0BcQ"}},"ucan/dlg@1.0.0-rc.1":{"aud":"did:key:z6Mkq5YmbJcTrPExNDi26imrTCpKhepjBFBSHqrBDN2ArPkv","cmd":"/foo/bar","exp":7258118400,"iss":"did:key:z6Mkpzn2n3ZGT2VaqMGSQC3tzmzV4TS9S71iFsDXE1WnoNH2","meta":{"bar":"barr","foo":"fooo"},"nonce":{"/":{"bytes":"NnJvRGhHaTBraU5yaVFBejdKM2QrYk9lb0kvdGo4RU5pa21RTmJ0am5EMA"}},"pol":[["==",".status","draft"],["all",".reviewer",["like",".email","*@example.com"]],["any",".tags",["or",[["==",".","news"],["==",".","press"]]]]],"sub":"did:key:z6MktA1uBdCpq4uJBqE9jjMiLyxZBg9a6xgPPKJjMqss6Zc2"}}]

1
delegation/testdata/root.dagjson vendored Normal file
View File

@@ -0,0 +1 @@
[{"/":{"bytes":"aYBq08tfm0zQZnPg/5tB9kM5mklRU9PPIkV7CK68jEgbd76JbCGuu75vfLyBu3WTqKzLSJ583pbwu668m/7MBQ"}},{"h":{"/":{"bytes":"NO0BcQ"}},"ucan/dlg@1.0.0-rc.1":{"aud":"did:key:z6Mkq5YmbJcTrPExNDi26imrTCpKhepjBFBSHqrBDN2ArPkv","cmd":"/foo/bar","exp":7258118400,"iss":"did:key:z6Mkpzn2n3ZGT2VaqMGSQC3tzmzV4TS9S71iFsDXE1WnoNH2","meta":{"bar":"barr","foo":"fooo"},"nonce":{"/":{"bytes":"NnJvRGhHaTBraU5yaVFBejdKM2QrYk9lb0kvdGo4RU5pa21RTmJ0am5EMA"}},"pol":[["==",".status","draft"],["all",".reviewer",["like",".email","*@example.com"]],["any",".tags",["or",[["==",".","news"],["==",".","press"]]]]],"sub":"did:key:z6Mkpzn2n3ZGT2VaqMGSQC3tzmzV4TS9S71iFsDXE1WnoNH2"}}]