github.com/kubeshop/testkube@v1.17.23/contrib/executor/artillery/pkg/runner/artillery_test.go (about)

     1  package runner
     2  
     3  import (
     4  	"context"
     5  	"os"
     6  	"path/filepath"
     7  	"testing"
     8  
     9  	cp "github.com/otiai10/copy"
    10  	"github.com/stretchr/testify/assert"
    11  
    12  	"github.com/kubeshop/testkube/pkg/api/v1/testkube"
    13  	"github.com/kubeshop/testkube/pkg/envs"
    14  	"github.com/kubeshop/testkube/pkg/utils/test"
    15  )
    16  
    17  func TestRun(t *testing.T) {
    18  	test.IntegrationTest(t)
    19  	t.Parallel()
    20  
    21  	ctx := context.Background()
    22  
    23  	t.Run("runner should run test based on execution data", func(t *testing.T) {
    24  		t.Parallel()
    25  
    26  		tempDir, err := os.MkdirTemp("", "*")
    27  		assert.NoErrorf(t, err, "failed to create temp dir: %v", err)
    28  		defer os.RemoveAll(tempDir)
    29  		repoDir := filepath.Join(tempDir, "repo")
    30  		assert.NoError(t, os.Mkdir(repoDir, 0755))
    31  		_ = cp.Copy("../../examples", repoDir)
    32  
    33  		params := envs.Params{DataDir: tempDir}
    34  		runner, err := NewArtilleryRunner(ctx, params)
    35  		assert.NoError(t, err)
    36  
    37  		repoURI := "https://github.com/kubeshop/testkube-executor-artillery.git"
    38  		result, err := runner.Run(
    39  			ctx,
    40  			testkube.Execution{
    41  				Content: &testkube.TestContent{
    42  					Type_: string(testkube.TestContentTypeGitFile),
    43  					Repository: &testkube.Repository{
    44  						Type_:  "git",
    45  						Uri:    repoURI,
    46  						Branch: "main",
    47  						Path:   "examples/test.yaml",
    48  					},
    49  				},
    50  			})
    51  		if err != nil {
    52  			t.Errorf("Artillery Test Failed: ResultErr: %v, Err: %v ", result.ErrorMessage, err)
    53  		}
    54  		// then
    55  		assert.NoError(t, err)
    56  		assert.Equal(t, *result.Status, testkube.PASSED_ExecutionStatus)
    57  	})
    58  }