#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" { | 		if v.Name == "JENKINS_OPTS" { | ||||||
| 			jenkinsOptsEnv := envs[k] | 			jenkinsOptsEnv := envs[k] | ||||||
| 			jenkinsOptsWithDashes := jenkinsOptsEnv.Value | 			jenkinsOptsWithDashes := jenkinsOptsEnv.Value | ||||||
| 			jenkinsOptsWithDashes = strings.ReplaceAll(jenkinsOptsWithDashes, "--", "") // Remove dashes
 | 			if len(jenkinsOptsWithDashes) == 0 { | ||||||
|  | 				return nil | ||||||
|  | 			} | ||||||
|  | 			 | ||||||
| 			jenkinsOptsWithEqOperators := strings.Split(jenkinsOptsWithDashes, " ") | 			jenkinsOptsWithEqOperators := strings.Split(jenkinsOptsWithDashes, " ") | ||||||
| 
 | 
 | ||||||
| 			for _, vx := range jenkinsOptsWithEqOperators { | 			for _, vx := range jenkinsOptsWithEqOperators { | ||||||
| 				opt := strings.Split(vx, "=") | 				opt := strings.Split(vx, "=") | ||||||
| 				jenkinsOpts[opt[0]] = opt[1] | 				jenkinsOpts[strings.ReplaceAll(opt[0], "--", "")] = opt[1] | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			return jenkinsOpts | 			return jenkinsOpts | ||||||
|  |  | ||||||
|  | @ -15,16 +15,34 @@ import ( | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func TestGetJenkinsOpts(t *testing.T) { | func TestGetJenkinsOpts(t *testing.T) { | ||||||
| 	envs := []corev1.EnvVar{ | 	t.Run("JENKINS_OPTS is empty", func(t *testing.T) { | ||||||
| 		{Name: "JENKINS_OPTS", Value: "--prefix=/jenkins --httpPort=8080"}, |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 		jenkins := &v1alpha2.Jenkins{ | 		jenkins := &v1alpha2.Jenkins{ | ||||||
| 			Spec: v1alpha2.JenkinsSpec{ | 			Spec: v1alpha2.JenkinsSpec{ | ||||||
| 				Master: v1alpha2.JenkinsMaster{ | 				Master: v1alpha2.JenkinsMaster{ | ||||||
| 					Containers: []v1alpha2.Container{ | 					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) | 		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") | 			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") | 			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 ( | import ( | ||||||
| 	"context" | 	"context" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"github.com/go-logr/logr" | 	"reflect" | ||||||
|  | 
 | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" | ||||||
| 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base" | 	"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/event" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/log" | 	"github.com/jenkinsci/kubernetes-operator/pkg/log" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/version" | 	"github.com/jenkinsci/kubernetes-operator/version" | ||||||
|  | 
 | ||||||
|  | 	"github.com/go-logr/logr" | ||||||
| 	"github.com/pkg/errors" | 	"github.com/pkg/errors" | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
| 	apierrors "k8s.io/apimachinery/pkg/api/errors" | 	apierrors "k8s.io/apimachinery/pkg/api/errors" | ||||||
|  | @ -24,7 +27,6 @@ import ( | ||||||
| 	"k8s.io/apimachinery/pkg/util/intstr" | 	"k8s.io/apimachinery/pkg/util/intstr" | ||||||
| 	"k8s.io/client-go/kubernetes" | 	"k8s.io/client-go/kubernetes" | ||||||
| 	"k8s.io/client-go/rest" | 	"k8s.io/client-go/rest" | ||||||
| 	"reflect" |  | ||||||
| 	"sigs.k8s.io/controller-runtime/pkg/client" | 	"sigs.k8s.io/controller-runtime/pkg/client" | ||||||
| 	"sigs.k8s.io/controller-runtime/pkg/controller" | 	"sigs.k8s.io/controller-runtime/pkg/controller" | ||||||
| 	"sigs.k8s.io/controller-runtime/pkg/handler" | 	"sigs.k8s.io/controller-runtime/pkg/handler" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue