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

     1  package runner
     2  
     3  import (
     4  	"context"
     5  	"os"
     6  	"path/filepath"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  
    11  	"github.com/kubeshop/testkube/pkg/api/v1/testkube"
    12  	"github.com/kubeshop/testkube/pkg/envs"
    13  	"github.com/kubeshop/testkube/pkg/utils/test"
    14  )
    15  
    16  func TestRun(t *testing.T) {
    17  	test.IntegrationTest(t)
    18  	t.Skipf("Skipping integration test %s until it is installed in CI", t.Name())
    19  
    20  	ctx := context.Background()
    21  
    22  	t.Run("runner should run test based on execution data", func(t *testing.T) {
    23  		t.Parallel()
    24  
    25  		tempDir, err := os.MkdirTemp("", "*")
    26  		assert.NoErrorf(t, err, "failed to create temp dir: %v", err)
    27  		defer os.RemoveAll(tempDir)
    28  
    29  		err = os.WriteFile(filepath.Join(tempDir, "test-content"), []byte("hello I'm test content"), 0644)
    30  		if err != nil {
    31  			assert.FailNow(t, "Unable to write template runner test content file")
    32  		}
    33  
    34  		// given
    35  		runner := NewRunner(envs.Params{DataDir: tempDir})
    36  		execution := testkube.NewQueuedExecution()
    37  		execution.Content = testkube.NewStringTestContent("")
    38  
    39  		// when
    40  		result, err := runner.Run(ctx, *execution)
    41  
    42  		// then
    43  		assert.NoError(t, err)
    44  		assert.Equal(t, result.Status, testkube.ExecutionStatusPassed)
    45  	})
    46  
    47  }