Some checks failed
CI / Run lints and checks (push) Failing after 47s
CI / Run tests (push) Failing after 1s
CI / Run race tests (push) Failing after 5s
CI / Build CLI docs (push) Has been skipped
CI / Run buf actions (push) Failing after 5s
CodeQL / Analyze (go) (push) Failing after 3s
CodeQL / Analyze (javascript) (push) Failing after 2s
Docker Image Scanners / scanners (push) Failing after 3s
Format / format (push) Failing after 3s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Draft newsletter (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
41 lines
1019 B
Go
41 lines
1019 B
Go
// Copyright © 2023 Ory Corp
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package namespace_test
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/ory/herodot"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/ory/keto/internal/driver/config"
|
|
"github.com/ory/keto/internal/namespace"
|
|
"github.com/ory/keto/internal/namespace/ast"
|
|
)
|
|
|
|
func TestASTRelationFor(t *testing.T) {
|
|
ctx := context.Background()
|
|
nm := config.NewMemoryNamespaceManager(&namespace.Namespace{
|
|
Name: "test",
|
|
Relations: []ast.Relation{{Name: "test"}},
|
|
})
|
|
|
|
rel, err := namespace.ASTRelationFor(ctx, nm, "test", "test")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "test", rel.Name)
|
|
|
|
_, err = namespace.ASTRelationFor(ctx, nm, "test", "unknown")
|
|
herr, ok := errors.AsType[*herodot.DefaultError](err)
|
|
require.True(t, ok)
|
|
assert.Equal(t, http.StatusBadRequest, herr.CodeField)
|
|
|
|
rel, err = namespace.ASTRelationFor(ctx, nm, "unknown", "")
|
|
require.NoError(t, err)
|
|
assert.Nil(t, rel)
|
|
}
|