From 9b25919d7caacf7f736cb3a3adc858aa424797dc Mon Sep 17 00:00:00 2001 From: Jakub Al-Khalili Date: Wed, 9 Oct 2019 12:35:47 +0200 Subject: [PATCH 1/2] #129 Fix plugin version validation --- pkg/controller/jenkins/plugins/plugin.go | 2 +- pkg/controller/jenkins/plugins/plugin_test.go | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/controller/jenkins/plugins/plugin.go b/pkg/controller/jenkins/plugins/plugin.go index ef96fa8a..5becfc07 100644 --- a/pkg/controller/jenkins/plugins/plugin.go +++ b/pkg/controller/jenkins/plugins/plugin.go @@ -23,7 +23,7 @@ func (p Plugin) String() string { var ( namePattern = regexp.MustCompile(`(?i)^[0-9a-z-_]+$`) - versionPattern = regexp.MustCompile(`^[0-9\\.]+$`) + versionPattern = regexp.MustCompile(`^[0-9\\.-]+$`) ) // New creates plugin from string, for example "name-of-plugin:0.0.1" diff --git a/pkg/controller/jenkins/plugins/plugin_test.go b/pkg/controller/jenkins/plugins/plugin_test.go index 2e050a0e..6a017e29 100644 --- a/pkg/controller/jenkins/plugins/plugin_test.go +++ b/pkg/controller/jenkins/plugins/plugin_test.go @@ -108,4 +108,13 @@ func TestVerifyDependencies(t *testing.T) { got := VerifyDependencies(basePlugins, extraPlugins) assert.Equal(t, false, got) }) + t.Run("happy with dash in version", func(t *testing.T) { + basePlugins := map[Plugin][]Plugin{ + Must(New("first-root-plugin:1.0.0-1")): { + Must(New("first-plugin:0.0.1-1")), + }, + } + got := VerifyDependencies(basePlugins) + assert.Equal(t, true, got) + }) } From 71038784cb34d47b57a4b602775d9fd025afb283 Mon Sep 17 00:00:00 2001 From: Jakub Al-Khalili Date: Wed, 9 Oct 2019 12:58:31 +0200 Subject: [PATCH 2/2] Fix plugin valdation tests --- pkg/controller/jenkins/configuration/base/validate_test.go | 4 ++-- pkg/controller/jenkins/plugins/plugin_test.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/controller/jenkins/configuration/base/validate_test.go b/pkg/controller/jenkins/configuration/base/validate_test.go index 145534f8..4dbaa298 100644 --- a/pkg/controller/jenkins/configuration/base/validate_test.go +++ b/pkg/controller/jenkins/configuration/base/validate_test.go @@ -57,7 +57,7 @@ func TestValidatePlugins(t *testing.T) { got := baseReconcileLoop.validatePlugins(requiredBasePlugins, basePlugins, userPlugins) - assert.False(t, got) + assert.Equal(t, got, []string{"invalid plugin version 'simple-plugin:invalid', must follow pattern '^[0-9\\\\.-]+$'"}) }) t.Run("valid base plugin", func(t *testing.T) { var requiredBasePlugins []plugins.Plugin @@ -84,7 +84,7 @@ func TestValidatePlugins(t *testing.T) { got := baseReconcileLoop.validatePlugins(requiredBasePlugins, basePlugins, userPlugins) - assert.False(t, got) + assert.Equal(t, got, []string{"invalid plugin version 'simple-plugin:invalid', must follow pattern '^[0-9\\\\.-]+$'"}) }) t.Run("valid user and base plugin version", func(t *testing.T) { var requiredBasePlugins []plugins.Plugin diff --git a/pkg/controller/jenkins/plugins/plugin_test.go b/pkg/controller/jenkins/plugins/plugin_test.go index 6a017e29..29593be9 100644 --- a/pkg/controller/jenkins/plugins/plugin_test.go +++ b/pkg/controller/jenkins/plugins/plugin_test.go @@ -115,6 +115,6 @@ func TestVerifyDependencies(t *testing.T) { }, } got := VerifyDependencies(basePlugins) - assert.Equal(t, true, got) + assert.Nil(got) }) }