Add AppMesh routing tests

This commit is contained in:
stefanprodan
2019-03-17 10:29:40 +02:00
parent 0ef1d0b2f1
commit 337c94376d
2 changed files with 42 additions and 9 deletions
+3 -3
View File
@@ -279,11 +279,11 @@ func (ar *AppmeshRouter) GetRoutes(canary *flaggerv1.Canary) (
}
// SetRoutes updates the destinations weight for primary and canary
func (ar *AppmeshRouter)SetRoutes(
func (ar *AppmeshRouter) SetRoutes(
canary *flaggerv1.Canary,
primaryWeight int,
canaryWeight int,
) error {
) error {
targetName := canary.Spec.TargetRef.Name
vsName := fmt.Sprintf("%s.%s", targetName, canary.Namespace)
vs, err := ar.appmeshClient.AppmeshV1alpha1().VirtualServices(canary.Namespace).Get(vsName, metav1.GetOptions{})
@@ -314,4 +314,4 @@ func (ar *AppmeshRouter)SetRoutes(
}
return nil
}
}
+39 -6
View File
@@ -11,7 +11,7 @@ func TestAppmeshRouter_Sync(t *testing.T) {
router := &AppmeshRouter{
logger: mocks.logger,
flaggerClient: mocks.flaggerClient,
appMeshClient: mocks.meshClient,
appmeshClient: mocks.meshClient,
kubeClient: mocks.kubeClient,
}
@@ -22,7 +22,7 @@ func TestAppmeshRouter_Sync(t *testing.T) {
// check virtual service
vsName := fmt.Sprintf("%s.%s", mocks.appmeshCanary.Spec.TargetRef.Name, mocks.appmeshCanary.Namespace)
vs, err := router.appMeshClient.AppmeshV1alpha1().VirtualServices("default").Get(vsName, metav1.GetOptions{})
vs, err := router.appmeshClient.AppmeshV1alpha1().VirtualServices("default").Get(vsName, metav1.GetOptions{})
if err != nil {
t.Fatal(err.Error())
}
@@ -39,7 +39,7 @@ func TestAppmeshRouter_Sync(t *testing.T) {
// check virtual node
vnName := fmt.Sprintf("%s-%s", mocks.appmeshCanary.Spec.TargetRef.Name, mocks.appmeshCanary.Namespace)
vn, err := router.appMeshClient.AppmeshV1alpha1().VirtualNodes("default").Get(vnName, metav1.GetOptions{})
vn, err := router.appmeshClient.AppmeshV1alpha1().VirtualNodes("default").Get(vnName, metav1.GetOptions{})
if err != nil {
t.Fatal(err.Error())
}
@@ -73,7 +73,7 @@ func TestAppmeshRouter_Sync(t *testing.T) {
// verify
vnCanaryName := fmt.Sprintf("%s-canary-%s", mocks.appmeshCanary.Spec.TargetRef.Name, mocks.appmeshCanary.Namespace)
vnCanary, err := router.appMeshClient.AppmeshV1alpha1().VirtualNodes("default").Get(vnCanaryName, metav1.GetOptions{})
vnCanary, err := router.appmeshClient.AppmeshV1alpha1().VirtualNodes("default").Get(vnCanaryName, metav1.GetOptions{})
if err != nil {
t.Fatal(err.Error())
}
@@ -96,7 +96,7 @@ func TestAppmeshRouter_Sync(t *testing.T) {
if err != nil {
t.Fatal(err.Error())
}
vs, err = router.appMeshClient.AppmeshV1alpha1().VirtualServices("default").Get(vsName, metav1.GetOptions{})
vs, err = router.appmeshClient.AppmeshV1alpha1().VirtualServices("default").Get(vsName, metav1.GetOptions{})
if err != nil {
t.Fatal(err.Error())
}
@@ -119,7 +119,7 @@ func TestAppmeshRouter_Sync(t *testing.T) {
if err != nil {
t.Fatal(err.Error())
}
vs, err = router.appMeshClient.AppmeshV1alpha1().VirtualServices("default").Get(vsName, metav1.GetOptions{})
vs, err = router.appmeshClient.AppmeshV1alpha1().VirtualServices("default").Get(vsName, metav1.GetOptions{})
if err != nil {
t.Fatal(err.Error())
}
@@ -129,3 +129,36 @@ func TestAppmeshRouter_Sync(t *testing.T) {
t.Errorf("Got prefix %v wanted %v", prefix, "/")
}
}
func TestAppmeshRouter_GetSetRoutes(t *testing.T) {
mocks := setupfakeClients()
router := &AppmeshRouter{
logger: mocks.logger,
flaggerClient: mocks.flaggerClient,
appmeshClient: mocks.meshClient,
kubeClient: mocks.kubeClient,
}
err := router.Sync(mocks.appmeshCanary)
if err != nil {
t.Fatal(err.Error())
}
err = router.SetRoutes(mocks.appmeshCanary, 60, 40)
if err != nil {
t.Fatal(err.Error())
}
p, c, err := router.GetRoutes(mocks.appmeshCanary)
if err != nil {
t.Fatal(err.Error())
}
if p != 60 {
t.Errorf("Got primary weight %v wanted %v", p, 60)
}
if c != 40 {
t.Errorf("Got canary weight %v wanted %v", c, 40)
}
}