internal/portforward/prober_test.go
Rama main · réplica de lectura del repositorio original.
package portforward
import (
"context"
"errors"
"testing"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/runtime"
k8sfake "k8s.io/client-go/kubernetes/fake"
k8stesting "k8s.io/client-go/testing"
)
func TestProberSeesALivePod(t *testing.T) {
pod := &corev1.Pod{Name: "web", Namespace: "flux-system"}
if !NewProber(k8sfake.NewClientset(pod)).Alive(context.Background(), "flux-system", "web") {
t.Fatalf("an existing pod must report alive")
}
}
func TestProberReportsAMissingPod(t *testing.T) {
if NewProber(k8sfake.NewClientset()).Alive(context.Background(), "flux-system", "web") {
t.Fatalf("a deleted pod must report dead")
}
}
func TestProberKeepsTheForwardOnATransientError(t *testing.T) {
cs := k8sfake.NewClientset()
cs.PrependReactor("get", "pods", func(k8stesting.Action) (bool, runtime.Object, error) {
return true, nil, errors.New("apiserver unreachable")
})
if !NewProber(cs).Alive(context.Background(), "flux-system", "web") {
t.Fatalf("a transient api error must not kill a working forward")
}
}