hydra-maester/hydra/types_test.go
Tim Siebels 44cd2371d9
Allow scope to be passed as array (#150)
* feat: Allow scope to be passed as array

Scopes are currently passed as a scope string, separating scopes by
spaces.
Clients can grow to many scopes, resulting in a very long string.

This change allows us to specify scopes using the property scopeArray.
That way, we can separate scopes by newlines.
Additionally, this allows us to comment a single scope temporarily or
add a comment for a specific scope, e.g. as a reason why that client has
this scope granted.

* feat: Deprecate scope in favor of scopeArray

* feat: Use kubebuilder:deprecatedversion
2024-10-14 10:06:41 +02:00

46 lines
1.0 KiB
Go

// Copyright © 2024 Ory Corp
// SPDX-License-Identifier: Apache-2.0
package hydra_test
import (
"testing"
hydrav1alpha1 "github.com/ory/hydra-maester/api/v1alpha1"
"github.com/ory/hydra-maester/hydra"
"github.com/stretchr/testify/assert"
)
func TestTypes(t *testing.T) {
t.Run("Test ScopeArray", func(t *testing.T) {
c := hydrav1alpha1.OAuth2Client{
Spec: hydrav1alpha1.OAuth2ClientSpec{
ScopeArray: []string{"scope1", "scope2"},
},
}
var parsedClient, err = hydra.FromOAuth2Client(&c)
if err != nil {
assert.Fail(t, "unexpected error: %s", err)
}
assert.Equal(t, parsedClient.Scope, "scope1 scope2")
})
t.Run("Test having both Scope and ScopeArray", func(t *testing.T) {
c := hydrav1alpha1.OAuth2Client{
Spec: hydrav1alpha1.OAuth2ClientSpec{
Scope: "scope3",
ScopeArray: []string{"scope1", "scope2"},
},
}
var parsedClient, err = hydra.FromOAuth2Client(&c)
if err != nil {
assert.Fail(t, "unexpected error: %s", err)
}
assert.Equal(t, parsedClient.Scope, "scope1 scope2 scope3")
})
}