Merge base and user e2e tests into one
This commit is contained in:
parent
da17e1a011
commit
ab87922bd1
|
|
@ -4,30 +4,40 @@ import (
|
|||
"context"
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1"
|
||||
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/user/seedjobs"
|
||||
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins"
|
||||
|
||||
"github.com/bndr/gojenkins"
|
||||
framework "github.com/operator-framework/operator-sdk/pkg/test"
|
||||
"github.com/stretchr/testify/assert"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
)
|
||||
|
||||
func TestBaseConfiguration(t *testing.T) {
|
||||
func TestConfiguration(t *testing.T) {
|
||||
t.Parallel()
|
||||
namespace, ctx := setupTest(t)
|
||||
// Deletes test namespace
|
||||
defer ctx.Cleanup()
|
||||
|
||||
// base
|
||||
jenkins := createJenkinsCR(t, namespace)
|
||||
createDefaultLimitsForContainersInNamespace(t, namespace)
|
||||
waitForJenkinsBaseConfigurationToComplete(t, jenkins)
|
||||
|
||||
verifyJenkinsMasterPodAttributes(t, jenkins)
|
||||
jenkinsClient := verifyJenkinsAPIConnection(t, jenkins)
|
||||
verifyBasePlugins(t, jenkinsClient)
|
||||
client := verifyJenkinsAPIConnection(t, jenkins)
|
||||
verifyBasePlugins(t, client)
|
||||
|
||||
// user
|
||||
waitForJenkinsUserConfigurationToComplete(t, jenkins)
|
||||
verifyJenkinsSeedJobs(t, client, jenkins)
|
||||
}
|
||||
|
||||
func createDefaultLimitsForContainersInNamespace(t *testing.T, namespace string) {
|
||||
|
|
@ -104,6 +114,43 @@ func verifyBasePlugins(t *testing.T, jenkinsClient *gojenkins.Jenkins) {
|
|||
t.Log("Base plugins have been installed")
|
||||
}
|
||||
|
||||
func verifyJenkinsSeedJobs(t *testing.T, client *gojenkins.Jenkins, jenkins *v1alpha1.Jenkins) {
|
||||
t.Logf("Attempting to get configure seed job status '%v'", seedjobs.ConfigureSeedJobsName)
|
||||
|
||||
configureSeedJobs, err := client.GetJob(seedjobs.ConfigureSeedJobsName)
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, configureSeedJobs)
|
||||
build, err := configureSeedJobs.GetLastSuccessfulBuild()
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, build)
|
||||
|
||||
seedJobName := "jenkins-operator-configure-seed-job"
|
||||
t.Logf("Attempting to verify if seed job has been created '%v'", seedJobName)
|
||||
seedJob, err := client.GetJob(seedJobName)
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, seedJob)
|
||||
|
||||
build, err = seedJob.GetLastSuccessfulBuild()
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, build)
|
||||
|
||||
err = framework.Global.Client.Get(context.TODO(), types.NamespacedName{Namespace: jenkins.Namespace, Name: jenkins.Name}, jenkins)
|
||||
assert.NoError(t, err, "couldn't get jenkins custom resource")
|
||||
assert.NotNil(t, jenkins.Status.Builds)
|
||||
assert.NotEmpty(t, jenkins.Status.Builds)
|
||||
|
||||
jobCreatedByDSLPluginName := "build-jenkins-operator"
|
||||
err = wait.Poll(time.Second*10, time.Minute*2, func() (bool, error) {
|
||||
t.Logf("Attempting to verify if job '%s' has been created ", jobCreatedByDSLPluginName)
|
||||
seedJob, err := client.GetJob(jobCreatedByDSLPluginName)
|
||||
if err != nil || seedJob == nil {
|
||||
return false, nil
|
||||
}
|
||||
return true, nil
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
func isPluginValid(plugins *gojenkins.Plugins, requiredPlugin plugins.Plugin) (*gojenkins.Plugin, bool) {
|
||||
p := plugins.Contains(requiredPlugin.Name)
|
||||
if p == nil {
|
||||
|
|
@ -76,28 +76,6 @@ func createJenkinsAPIClient(jenkins *v1alpha1.Jenkins) (*gojenkins.Jenkins, erro
|
|||
}
|
||||
|
||||
func createJenkinsCR(t *testing.T, namespace string) *v1alpha1.Jenkins {
|
||||
jenkins := &v1alpha1.Jenkins{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "e2e",
|
||||
Namespace: namespace,
|
||||
},
|
||||
Spec: v1alpha1.JenkinsSpec{
|
||||
Master: v1alpha1.JenkinsMaster{
|
||||
Image: "jenkins/jenkins",
|
||||
Annotations: map[string]string{"test": "label"},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
t.Logf("Jenkins CR %+v", *jenkins)
|
||||
if err := framework.Global.Client.Create(context.TODO(), jenkins, nil); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
return jenkins
|
||||
}
|
||||
|
||||
func createJenkinsCRWithSeedJob(t *testing.T, namespace string) *v1alpha1.Jenkins {
|
||||
jenkins := &v1alpha1.Jenkins{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "e2e",
|
||||
|
|
|
|||
|
|
@ -1,69 +0,0 @@
|
|||
package e2e
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkinsio/v1alpha1"
|
||||
"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/user/seedjobs"
|
||||
|
||||
"github.com/bndr/gojenkins"
|
||||
framework "github.com/operator-framework/operator-sdk/pkg/test"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
)
|
||||
|
||||
func TestUserConfiguration(t *testing.T) {
|
||||
t.Parallel()
|
||||
namespace, ctx := setupTest(t)
|
||||
// Deletes test namespace
|
||||
defer ctx.Cleanup()
|
||||
|
||||
// base
|
||||
jenkins := createJenkinsCRWithSeedJob(t, namespace)
|
||||
waitForJenkinsBaseConfigurationToComplete(t, jenkins)
|
||||
client := verifyJenkinsAPIConnection(t, jenkins)
|
||||
|
||||
// user
|
||||
waitForJenkinsUserConfigurationToComplete(t, jenkins)
|
||||
verifyJenkinsSeedJobs(t, client, jenkins)
|
||||
}
|
||||
|
||||
func verifyJenkinsSeedJobs(t *testing.T, client *gojenkins.Jenkins, jenkins *v1alpha1.Jenkins) {
|
||||
t.Logf("Attempting to get configure seed job status '%v'", seedjobs.ConfigureSeedJobsName)
|
||||
|
||||
configureSeedJobs, err := client.GetJob(seedjobs.ConfigureSeedJobsName)
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, configureSeedJobs)
|
||||
build, err := configureSeedJobs.GetLastSuccessfulBuild()
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, build)
|
||||
|
||||
seedJobName := "jenkins-operator-configure-seed-job"
|
||||
t.Logf("Attempting to verify if seed job has been created '%v'", seedJobName)
|
||||
seedJob, err := client.GetJob(seedJobName)
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, seedJob)
|
||||
|
||||
build, err = seedJob.GetLastSuccessfulBuild()
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, build)
|
||||
|
||||
err = framework.Global.Client.Get(context.TODO(), types.NamespacedName{Namespace: jenkins.Namespace, Name: jenkins.Name}, jenkins)
|
||||
assert.NoError(t, err, "couldn't get jenkins custom resource")
|
||||
assert.NotNil(t, jenkins.Status.Builds)
|
||||
assert.NotEmpty(t, jenkins.Status.Builds)
|
||||
|
||||
jobCreatedByDSLPluginName := "build-jenkins-operator"
|
||||
err = wait.Poll(time.Second*10, time.Minute*2, func() (bool, error) {
|
||||
t.Logf("Attempting to verify if job '%s' has been created ", jobCreatedByDSLPluginName)
|
||||
seedJob, err := client.GetJob(jobCreatedByDSLPluginName)
|
||||
if err != nil || seedJob == nil {
|
||||
return false, nil
|
||||
}
|
||||
return true, nil
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
Loading…
Reference in New Issue