add a small test for verifying the label selector is named as expected for daemonsets

This commit is contained in:
Forrest Thomas
2020-09-02 12:46:02 -07:00
parent 1bd7ce4eed
commit ef57dcf75d
2 changed files with 29 additions and 5 deletions
+26 -2
View File
@@ -2,6 +2,7 @@ package canary
import (
"context"
"fmt"
"testing"
"github.com/stretchr/testify/assert"
@@ -14,19 +15,42 @@ import (
flaggerv1 "github.com/weaveworks/flagger/pkg/apis/flagger/v1beta1"
)
func TestDaemonSetController_Sync(t *testing.T) {
func TestDaemonSetController_Sync_ConsistentNaming(t *testing.T) {
dc := daemonsetConfigs{name: "podinfo", label: "name", labelValue: "podinfo"}
mocks := newDaemonSetFixture(dc)
err := mocks.controller.Initialize(mocks.canary)
require.NoError(t, err)
daePrimary, err := mocks.kubeClient.AppsV1().DaemonSets("default").Get(context.TODO(), "podinfo-primary", metav1.GetOptions{})
daePrimary, err := mocks.kubeClient.AppsV1().DaemonSets("default").Get(context.TODO(), fmt.Sprintf("%s-primary", dc.name), metav1.GetOptions{})
require.NoError(t, err)
dae := newDaemonSetControllerTestPodInfo(dc)
primaryImage := daePrimary.Spec.Template.Spec.Containers[0].Image
sourceImage := dae.Spec.Template.Spec.Containers[0].Image
assert.Equal(t, primaryImage, sourceImage)
primarySelectorValue := daePrimary.Spec.Selector.MatchLabels[dc.label]
sourceSelectorValue := dae.Spec.Selector.MatchLabels[dc.label]
assert.Equal(t, primarySelectorValue, fmt.Sprintf("%s-primary", sourceSelectorValue))
}
func TestDaemonSetController_Sync_InconsistentNaming(t *testing.T) {
dc := daemonsetConfigs{name: "podinfo-service", label: "name", labelValue: "podinfo"}
mocks := newDaemonSetFixture(dc)
err := mocks.controller.Initialize(mocks.canary)
require.NoError(t, err)
daePrimary, err := mocks.kubeClient.AppsV1().DaemonSets("default").Get(context.TODO(), fmt.Sprintf("%s-primary", dc.name), metav1.GetOptions{})
require.NoError(t, err)
dae := newDaemonSetControllerTestPodInfo(dc)
primaryImage := daePrimary.Spec.Template.Spec.Containers[0].Image
sourceImage := dae.Spec.Template.Spec.Containers[0].Image
assert.Equal(t, primaryImage, sourceImage)
primarySelectorValue := daePrimary.Spec.Selector.MatchLabels[dc.label]
sourceSelectorValue := dae.Spec.Selector.MatchLabels[dc.label]
assert.Equal(t, primarySelectorValue, fmt.Sprintf("%s-primary", sourceSelectorValue))
}
func TestDaemonSetController_Promote(t *testing.T) {
+3 -3
View File
@@ -31,7 +31,7 @@ type daemonsetConfigs struct {
func newDaemonSetFixture(dc daemonsetConfigs) daemonSetControllerFixture {
// init canary
canary := newDaemonSetControllerTestCanary()
canary := newDaemonSetControllerTestCanary(dc)
flaggerClient := fakeFlagger.NewSimpleClientset(canary)
// init kube clientset and register mock objects
@@ -270,7 +270,7 @@ func newDaemonSetControllerTestSecretTrackerDisabled() *corev1.Secret {
}
}
func newDaemonSetControllerTestCanary() *flaggerv1.Canary {
func newDaemonSetControllerTestCanary(dc daemonsetConfigs) *flaggerv1.Canary {
cd := &flaggerv1.Canary{
TypeMeta: metav1.TypeMeta{APIVersion: flaggerv1.SchemeGroupVersion.String()},
ObjectMeta: metav1.ObjectMeta{
@@ -279,7 +279,7 @@ func newDaemonSetControllerTestCanary() *flaggerv1.Canary {
},
Spec: flaggerv1.CanarySpec{
TargetRef: flaggerv1.CrossNamespaceObjectReference{
Name: "podinfo",
Name: dc.name,
APIVersion: "apps/v1",
Kind: "DaemonSet",
},