#43 Improve tests and fix GetJenkinsOpts
This commit is contained in:
		
							parent
							
								
									01655785b5
								
							
						
					
					
						commit
						9e73be7a49
					
				|  | @ -136,12 +136,15 @@ func GetJenkinsOpts(jenkins *v1alpha2.Jenkins) map[string]string { | |||
| 		if v.Name == "JENKINS_OPTS" { | ||||
| 			jenkinsOptsEnv := envs[k] | ||||
| 			jenkinsOptsWithDashes := jenkinsOptsEnv.Value | ||||
| 			jenkinsOptsWithDashes = strings.ReplaceAll(jenkinsOptsWithDashes, "--", "") // Remove dashes
 | ||||
| 			if len(jenkinsOptsWithDashes) == 0 { | ||||
| 				return nil | ||||
| 			} | ||||
| 			 | ||||
| 			jenkinsOptsWithEqOperators := strings.Split(jenkinsOptsWithDashes, " ") | ||||
| 
 | ||||
| 			for _, vx := range jenkinsOptsWithEqOperators { | ||||
| 				opt := strings.Split(vx, "=") | ||||
| 				jenkinsOpts[opt[0]] = opt[1] | ||||
| 				jenkinsOpts[strings.ReplaceAll(opt[0], "--", "")] = opt[1] | ||||
| 			} | ||||
| 
 | ||||
| 			return jenkinsOpts | ||||
|  |  | |||
|  | @ -15,16 +15,34 @@ import ( | |||
| ) | ||||
| 
 | ||||
| func TestGetJenkinsOpts(t *testing.T) { | ||||
| 	envs := []corev1.EnvVar{ | ||||
| 		{Name: "JENKINS_OPTS", Value: "--prefix=/jenkins --httpPort=8080"}, | ||||
| 	} | ||||
| 
 | ||||
| 	t.Run("JENKINS_OPTS is empty", func(t *testing.T) { | ||||
| 		jenkins := &v1alpha2.Jenkins{ | ||||
| 			Spec: v1alpha2.JenkinsSpec{ | ||||
| 				Master: v1alpha2.JenkinsMaster{ | ||||
| 					Containers: []v1alpha2.Container{ | ||||
| 						{ | ||||
| 						Env: envs, | ||||
| 							Env: []corev1.EnvVar{ | ||||
| 								{Name: "JENKINS_OPTS", Value: ""}, | ||||
| 							}, | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		} | ||||
| 
 | ||||
| 		opts := GetJenkinsOpts(jenkins) | ||||
| 		assert.Equal(t, 0, len(opts)) | ||||
| 	}) | ||||
| 
 | ||||
| 	t.Run("JENKINS_OPTS have --prefix argument ", func(t *testing.T) { | ||||
| 		jenkins := &v1alpha2.Jenkins{ | ||||
| 			Spec: v1alpha2.JenkinsSpec{ | ||||
| 				Master: v1alpha2.JenkinsMaster{ | ||||
| 					Containers: []v1alpha2.Container{ | ||||
| 						{ | ||||
| 							Env: []corev1.EnvVar{ | ||||
| 								{Name: "JENKINS_OPTS", Value: "--prefix=/jenkins"}, | ||||
| 							}, | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
|  | @ -33,22 +51,45 @@ func TestGetJenkinsOpts(t *testing.T) { | |||
| 
 | ||||
| 		opts := GetJenkinsOpts(jenkins) | ||||
| 
 | ||||
| 	t.Run("equal env vars", func(t *testing.T) { | ||||
| 		assert.Equal(t, 1, len(opts)) | ||||
| 
 | ||||
| 		t.Run("ensure that JENKINS_OPTS not contains --httpPort", func(t *testing.T) { | ||||
| 			assert.NotContains(t, opts, "httpPort") | ||||
| 		}) | ||||
| 
 | ||||
| 		t.Run("ensure that argument is --prefix", func(t *testing.T) { | ||||
| 			assert.Contains(t, opts, "prefix") | ||||
| 		}) | ||||
| 	}) | ||||
| 
 | ||||
| 	t.Run("JENKINS_OPTS have --prefix and --httpPort argument", func(t *testing.T) { | ||||
| 		jenkins := &v1alpha2.Jenkins{ | ||||
| 			Spec: v1alpha2.JenkinsSpec{ | ||||
| 				Master: v1alpha2.JenkinsMaster{ | ||||
| 					Containers: []v1alpha2.Container{ | ||||
| 						{ | ||||
| 							Env: []corev1.EnvVar{ | ||||
| 								{Name: "JENKINS_OPTS", Value: "--prefix=/jenkins --httpPort=8080"}, | ||||
| 							}, | ||||
| 						}, | ||||
| 					}, | ||||
| 				}, | ||||
| 			}, | ||||
| 		} | ||||
| 
 | ||||
| 		opts := GetJenkinsOpts(jenkins) | ||||
| 
 | ||||
| 		assert.Equal(t, 2, len(opts)) | ||||
| 
 | ||||
| 		t.Run("ensure that argument is --prefix with value /jenkins", func(t *testing.T) { | ||||
| 			assert.Contains(t, opts, "prefix") | ||||
| 			assert.Equal(t, opts["prefix"], "/jenkins") | ||||
| 		}) | ||||
| 
 | ||||
| 		t.Run("ensure that argument is --httpPort with value 8080", func(t *testing.T) { | ||||
| 			assert.Contains(t, opts, "httpPort") | ||||
| 			assert.Equal(t, opts["httpPort"], "8080") | ||||
| 		}) | ||||
| 
 | ||||
| 	t.Run("not equal env vars", func(t *testing.T) { | ||||
| 		assert.NotEqual(t, opts["prefix"], "/jenkins_not_equal") | ||||
| 		assert.NotEqual(t, opts["httpPort"], "80808") | ||||
| 	}) | ||||
| 
 | ||||
| 	t.Run("should exists", func(t *testing.T) { | ||||
| 		assert.Contains(t, opts, "httpPort") | ||||
| 	}) | ||||
| 
 | ||||
| 	t.Run("should exists", func(t *testing.T) { | ||||
| 		assert.NotContains(t, opts, "should_not_exists") | ||||
| 	}) | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,7 +3,8 @@ package jenkins | |||
| import ( | ||||
| 	"context" | ||||
| 	"fmt" | ||||
| 	"github.com/go-logr/logr" | ||||
| 	"reflect" | ||||
| 
 | ||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" | ||||
| 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base" | ||||
|  | @ -15,6 +16,8 @@ import ( | |||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/event" | ||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/log" | ||||
| 	"github.com/jenkinsci/kubernetes-operator/version" | ||||
| 
 | ||||
| 	"github.com/go-logr/logr" | ||||
| 	"github.com/pkg/errors" | ||||
| 	corev1 "k8s.io/api/core/v1" | ||||
| 	apierrors "k8s.io/apimachinery/pkg/api/errors" | ||||
|  | @ -24,7 +27,6 @@ import ( | |||
| 	"k8s.io/apimachinery/pkg/util/intstr" | ||||
| 	"k8s.io/client-go/kubernetes" | ||||
| 	"k8s.io/client-go/rest" | ||||
| 	"reflect" | ||||
| 	"sigs.k8s.io/controller-runtime/pkg/client" | ||||
| 	"sigs.k8s.io/controller-runtime/pkg/controller" | ||||
| 	"sigs.k8s.io/controller-runtime/pkg/handler" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue