49 lines
1.7 KiB
Go
49 lines
1.7 KiB
Go
package apistore
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
authtypes "github.com/grafana/authlib/types"
|
|
|
|
"github.com/grafana/grafana/apps/dashboard/pkg/apis/dashboard/v0alpha1"
|
|
"github.com/grafana/grafana/pkg/apimachinery/utils"
|
|
"github.com/grafana/grafana/pkg/storage/unified/resourcepb"
|
|
)
|
|
|
|
func TestAfterCreatePermissionCreator(t *testing.T) {
|
|
mockSetter := func(ctx context.Context, key *resourcepb.ResourceKey, auth authtypes.AuthInfo, val utils.GrafanaMetaAccessor) error {
|
|
return nil
|
|
}
|
|
|
|
t.Run("should return nil when grantPermissions is empty", func(t *testing.T) {
|
|
creator, err := afterCreatePermissionCreator(context.Background(), nil, "", nil, mockSetter)
|
|
require.NoError(t, err)
|
|
require.Nil(t, creator)
|
|
})
|
|
|
|
t.Run("should error with invalid grantPermissions value", func(t *testing.T) {
|
|
creator, err := afterCreatePermissionCreator(context.Background(), nil, "invalid", nil, mockSetter)
|
|
require.Error(t, err)
|
|
require.Nil(t, creator)
|
|
require.Contains(t, err.Error(), "invalid permissions value")
|
|
})
|
|
|
|
t.Run("should error when setter is nil", func(t *testing.T) {
|
|
creator, err := afterCreatePermissionCreator(context.Background(), nil, utils.AnnoGrantPermissionsDefault, nil, nil)
|
|
require.Error(t, err)
|
|
require.Nil(t, creator)
|
|
require.Contains(t, err.Error(), "missing default permission creator")
|
|
})
|
|
|
|
t.Run("should error when auth info is missing", func(t *testing.T) {
|
|
obj := &v0alpha1.Dashboard{}
|
|
creator, err := afterCreatePermissionCreator(context.Background(), nil, utils.AnnoGrantPermissionsDefault, obj, mockSetter)
|
|
require.Error(t, err)
|
|
require.Nil(t, creator)
|
|
require.Contains(t, err.Error(), "missing auth info")
|
|
})
|
|
}
|