70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
| package e2e
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"testing"
 | |
| 	"time"
 | |
| 
 | |
| 	virtuslabv1alpha1 "github.com/jenkinsci/kubernetes-operator/pkg/apis/virtuslab/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 *virtuslabv1alpha1.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)
 | |
| }
 |