From 1d4dfb0883eee3a0be894fc735334ce4c7b69797 Mon Sep 17 00:00:00 2001 From: stefanprodan Date: Wed, 6 Mar 2019 13:46:19 +0200 Subject: [PATCH] Add request header add test --- pkg/router/istio_test.go | 30 ++++++++++++++++++++++++++++++ pkg/router/router_test.go | 8 ++++++++ 2 files changed, 38 insertions(+) diff --git a/pkg/router/istio_test.go b/pkg/router/istio_test.go index a5f6f9d6..807f80f1 100644 --- a/pkg/router/istio_test.go +++ b/pkg/router/istio_test.go @@ -177,3 +177,33 @@ func TestIstioRouter_GetRoutes(t *testing.T) { t.Errorf("Got canary weight %v wanted %v", c, 0) } } + +func TestIstioRouter_HTTPRequestHeaders(t *testing.T) { + mocks := setupfakeClients() + router := &IstioRouter{ + logger: mocks.logger, + flaggerClient: mocks.flaggerClient, + istioClient: mocks.istioClient, + kubeClient: mocks.kubeClient, + } + + err := router.Sync(mocks.canary) + if err != nil { + t.Fatal(err.Error()) + } + + // test insert + vs, err := mocks.istioClient.NetworkingV1alpha3().VirtualServices("default").Get("podinfo", metav1.GetOptions{}) + if err != nil { + t.Fatal(err.Error()) + } + + if len(vs.Spec.Http) != 1 { + t.Fatalf("Got HTTPRoute %v wanted %v", len(vs.Spec.Http), 1) + } + + timeout := vs.Spec.Http[0].AppendHeaders["x-envoy-upstream-rq-timeout-ms"] + if timeout != "15000" { + t.Errorf("Got timeout %v wanted %v", timeout, "15000") + } +} diff --git a/pkg/router/router_test.go b/pkg/router/router_test.go index 7f912143..037c3391 100644 --- a/pkg/router/router_test.go +++ b/pkg/router/router_test.go @@ -2,6 +2,7 @@ package router import ( "github.com/stefanprodan/flagger/pkg/apis/flagger/v1alpha3" + istiov1alpha3 "github.com/stefanprodan/flagger/pkg/apis/istio/v1alpha3" clientset "github.com/stefanprodan/flagger/pkg/client/clientset/versioned" fakeFlagger "github.com/stefanprodan/flagger/pkg/client/clientset/versioned/fake" "github.com/stefanprodan/flagger/pkg/logging" @@ -57,6 +58,13 @@ func newMockCanary() *v1alpha3.Canary { }, Service: v1alpha3.CanaryService{ Port: 9898, + Headers: &istiov1alpha3.Headers{ + Request: &istiov1alpha3.HeaderOperations{ + Set: map[string]string{ + "x-envoy-upstream-rq-timeout-ms": "15000", + }, + }, + }, }, CanaryAnalysis: v1alpha3.CanaryAnalysis{ Threshold: 10, StepWeight: 10,