Files
functions/pkg/utils/serviceaccount_test.go
zeekay bd81b9f2e2 canonical: hanzoai imports + hanzo.ai CRD group (de-fission)
Module github.com/fission/fission -> github.com/hanzoai/functions (288 files).
CRD API group fission.io -> hanzo.ai (67 files): functions.hanzo.ai,
environments.hanzo.ai, httptriggers.hanzo.ai, messagequeuetriggers.hanzo.ai,
joining apps.hanzo.ai under the one house group. Doc URLs preserved. Builds green.

Matches the cloud contract: clients/functions, /v1/functions, App CR role
"function". Remaining: fork the env images + the live CRD-group migration
(demo-only today, low risk).
2026-07-19 23:37:32 -07:00

39 lines
1.1 KiB
Go

package utils
import (
"os"
"regexp"
"testing"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes/fake"
"github.com/hanzoai/functions/pkg/utils/loggerfactory"
"github.com/hanzoai/functions/pkg/utils/manager"
)
func TestServiceAccountCheck(t *testing.T) {
mgr := manager.New()
t.Cleanup(mgr.Wait)
ctx := t.Context()
kubernetesClient := fake.NewSimpleClientset()
logger := loggerfactory.GetLogger()
os.Setenv(ENV_CREATE_SA, "true")
CreateMissingPermissionForSA(ctx, kubernetesClient, logger)
// Get rolebinding for a service account
rolebindings, err := kubernetesClient.RbacV1().RoleBindings("default").List(ctx, metav1.ListOptions{})
if err != nil {
t.Fatal(err)
}
if len(rolebindings.Items) != 2 {
t.Fatal("Rolebinding not created", len(rolebindings.Items))
}
regexp := regexp.MustCompile(`fission\-(fetcher|builder)\-rolebinding\-[a-z0-9]{6}`)
for _, rolebinding := range rolebindings.Items {
if !regexp.Match([]byte(rolebinding.Name)) {
t.Fatal("Rolebinding not created for fission-builder or fission-fetcher", rolebinding.Name)
}
}
}