policy: fix tests now that selector evaluation is clearer

https://github.com/ucan-wg/delegation/pull/15
https://github.com/ucan-wg/delegation/pull/16
This commit is contained in:
Michael Muré
2025-01-23 12:21:42 +01:00
parent 7f9cb6426c
commit 4c81ac778e
2 changed files with 14 additions and 11 deletions

View File

@@ -57,7 +57,7 @@ Not implemented yet:
Besides that, `go-ucan` also includes:
- a simplified [DID](https://www.w3.org/TR/did-core/) and [did-key](https://w3c-ccg.github.io/did-method-key/) implementation
- a [token container](https://github.com/ucan-wg/go-ucan/tree/v1/pkg/container) with CBOR and CAR format, to package and carry tokens together
- a [token container](https://github.com/ucan-wg/go-ucan/tree/v1/pkg/container) with CBOR and CAR format, to package and carry tokens together, see [SPEC](pkg/container/SPEC.md)
- support for encrypted values in token's metadata
## Getting Help

View File

@@ -135,8 +135,6 @@ func TestMatch(t *testing.T) {
require.Equal(t, pol[0], leaf)
})
// ------------
t.Run("neq string", func(t *testing.T) {
nd := literal.String("test")
@@ -236,11 +234,11 @@ func TestMatch(t *testing.T) {
require.True(t, ok)
require.Nil(t, leaf)
// TODO: clarify how it behave when the data is missing
// missing data will fail, as not optional
pol = MustConstruct(NotEqual(".foobar", literal.String("bar")))
ok, leaf = pol.Match(nd)
require.True(t, ok)
require.Nil(t, leaf)
require.False(t, ok)
require.Equal(t, pol[0], leaf)
})
t.Run("neq string in list", func(t *testing.T) {
@@ -251,11 +249,16 @@ func TestMatch(t *testing.T) {
require.False(t, ok)
require.Equal(t, pol[0], leaf)
// TODO: clarify how it behave when the data is missing
pol = MustConstruct(NotEqual(".[1]", literal.String("foo")))
pol = MustConstruct(NotEqual(".[0]", literal.String("bar")))
ok, leaf = pol.Match(nd)
require.True(t, ok)
require.Nil(t, leaf)
// missing data will fail, as not optional
pol = MustConstruct(NotEqual(".[1]", literal.String("foo")))
ok, leaf = pol.Match(nd)
require.False(t, ok)
require.Equal(t, pol[0], leaf)
})
})
@@ -418,11 +421,11 @@ func TestMatch(t *testing.T) {
require.False(t, ok)
require.Equal(t, pol[0], leaf)
// TODO: clarify how it works on missing data
// missing data will fail, as not optional
pol = MustConstruct(Not(Equal(".foobar", literal.Bool(true))))
ok, leaf = pol.Match(nd)
require.True(t, ok)
require.Nil(t, leaf)
require.False(t, ok)
require.Equal(t, MustConstruct(Equal(".foobar", literal.Bool(true)))[0], leaf)
})
t.Run("conjunction", func(t *testing.T) {