client_test.go (traefik-v2.3.2.src) | : | client_test.go (traefik-v2.3.3.src) | ||
---|---|---|---|---|
package ingress | package ingress | |||
import ( | import ( | |||
"fmt" | "fmt" | |||
"testing" | "testing" | |||
"time" | ||||
"github.com/stretchr/testify/assert" | "github.com/stretchr/testify/assert" | |||
"github.com/stretchr/testify/require" | ||||
corev1 "k8s.io/api/core/v1" | ||||
kubeerror "k8s.io/apimachinery/pkg/api/errors" | kubeerror "k8s.io/apimachinery/pkg/api/errors" | |||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||
"k8s.io/apimachinery/pkg/runtime/schema" | "k8s.io/apimachinery/pkg/runtime/schema" | |||
kubefake "k8s.io/client-go/kubernetes/fake" | ||||
) | ) | |||
func TestTranslateNotFoundError(t *testing.T) { | func TestTranslateNotFoundError(t *testing.T) { | |||
testCases := []struct { | testCases := []struct { | |||
desc string | desc string | |||
err error | err error | |||
expectedExists bool | expectedExists bool | |||
expectedError error | expectedError error | |||
}{ | }{ | |||
{ | { | |||
skipping to change at line 50 | skipping to change at line 55 | |||
test := test | test := test | |||
t.Run(test.desc, func(t *testing.T) { | t.Run(test.desc, func(t *testing.T) { | |||
t.Parallel() | t.Parallel() | |||
exists, err := translateNotFoundError(test.err) | exists, err := translateNotFoundError(test.err) | |||
assert.Equal(t, test.expectedExists, exists) | assert.Equal(t, test.expectedExists, exists) | |||
assert.Equal(t, test.expectedError, err) | assert.Equal(t, test.expectedError, err) | |||
}) | }) | |||
} | } | |||
} | } | |||
func TestClientIgnoresHelmOwnedSecrets(t *testing.T) { | ||||
secret := &corev1.Secret{ | ||||
ObjectMeta: metav1.ObjectMeta{ | ||||
Namespace: "default", | ||||
Name: "secret", | ||||
}, | ||||
} | ||||
helmSecret := &corev1.Secret{ | ||||
ObjectMeta: metav1.ObjectMeta{ | ||||
Namespace: "default", | ||||
Name: "helm-secret", | ||||
Labels: map[string]string{ | ||||
"owner": "helm", | ||||
}, | ||||
}, | ||||
} | ||||
kubeClient := kubefake.NewSimpleClientset(helmSecret, secret) | ||||
client := newClientImpl(kubeClient) | ||||
stopCh := make(chan struct{}) | ||||
eventCh, err := client.WatchAll(nil, stopCh) | ||||
require.NoError(t, err) | ||||
select { | ||||
case event := <-eventCh: | ||||
secret, ok := event.(*corev1.Secret) | ||||
require.True(t, ok) | ||||
assert.NotEqual(t, "helm-secret", secret.Name) | ||||
case <-time.After(50 * time.Millisecond): | ||||
assert.Fail(t, "expected to receive event for secret") | ||||
} | ||||
select { | ||||
case <-eventCh: | ||||
assert.Fail(t, "received more than one event") | ||||
case <-time.After(50 * time.Millisecond): | ||||
} | ||||
_, found, err := client.GetSecret("default", "secret") | ||||
require.NoError(t, err) | ||||
assert.True(t, found) | ||||
_, found, err = client.GetSecret("default", "helm-secret") | ||||
require.NoError(t, err) | ||||
assert.False(t, found) | ||||
} | ||||
End of changes. 5 change blocks. | ||||
0 lines changed or deleted | 5 lines changed or added |