package buildermgr import ( "context" "testing" "github.com/fission/fission/pkg/utils" "github.com/fission/fission/pkg/utils/manager" ) type fakeBuilderEnvNamespaceAdder struct { lastNamespace string calls int } func (f *fakeBuilderEnvNamespaceAdder) AddNamespace(ctx context.Context, ns string, mgr manager.Interface) { f.lastNamespace = ns f.calls++ } type fakeBuilderPkgNamespaceAdder struct { lastNamespace string calls int } func (f *fakeBuilderPkgNamespaceAdder) AddNamespace(ctx context.Context, ns string, mgr manager.Interface) { f.lastNamespace = ns f.calls++ } func TestNewNamespaceSubscriberAddAndResync(t *testing.T) { envw := &fakeBuilderEnvNamespaceAdder{} pkgw := &fakeBuilderPkgNamespaceAdder{} subscriber := NewNamespaceSubscriber(envw, pkgw, nil) record := utils.NamespaceRecord{Name: "tenant-builder-a"} if subscriber.Name() != "buildermgr" { t.Fatalf("expected buildermgr subscriber name") } if err := subscriber.OnNamespaceAdd(context.Background(), record); err != nil { t.Fatalf("expected add to succeed: %v", err) } if err := subscriber.OnNamespaceResync(context.Background(), record); err != nil { t.Fatalf("expected resync to succeed: %v", err) } if envw.calls != 2 || pkgw.calls != 2 { t.Fatalf("expected both watchers to be called for add and resync") } if envw.lastNamespace != "tenant-builder-a" || pkgw.lastNamespace != "tenant-builder-a" { t.Fatalf("expected namespace to be forwarded to both watchers") } }