github.com/kubeshop/testkube@v1.17.23/contrib/executor/ginkgo/pkg/runner/runner_integration_test.go (about) 1 package runner 2 3 import ( 4 "context" 5 "os" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 10 "github.com/kubeshop/testkube/pkg/api/v1/testkube" 11 "github.com/kubeshop/testkube/pkg/envs" 12 "github.com/kubeshop/testkube/pkg/executor/content" 13 "github.com/kubeshop/testkube/pkg/utils/test" 14 ) 15 16 const repoURI = "https://github.com/kubeshop/testkube-executor-ginkgo.git" 17 18 func TestRun_Integration(t *testing.T) { 19 test.IntegrationTest(t) 20 t.Parallel() 21 22 ctx := context.Background() 23 24 t.Run("GinkgoRunner should run tests from a repo that pass", func(t *testing.T) { 25 t.Parallel() 26 27 tempDir, err := os.MkdirTemp("", "*") 28 assert.NoErrorf(t, err, "could not create temp dir: %v", err) 29 defer os.RemoveAll(tempDir) 30 31 params := envs.Params{DataDir: tempDir} 32 runner, err := NewGinkgoRunner(ctx, params) 33 if err != nil { 34 t.Fatalf("could not create runner: %v", err) 35 } 36 vars := make(map[string]testkube.Variable) 37 variableOne := testkube.Variable{ 38 Name: "GinkgoTestPackage", 39 Value: "examples/e2e", 40 Type_: testkube.VariableTypeBasic, 41 } 42 vars["GinkgoTestPackage"] = variableOne 43 44 repo := &testkube.Repository{ 45 Type_: "git", 46 Uri: repoURI, 47 Branch: "main", 48 } 49 50 _, err = content.NewFetcher(tempDir).FetchGit(repo) 51 assert.NoError(t, err) 52 53 result, err := runner.Run( 54 ctx, 55 testkube.Execution{ 56 Content: &testkube.TestContent{ 57 Type_: string(testkube.TestContentTypeGitDir), 58 Repository: repo, 59 }, 60 Variables: vars, 61 Command: []string{ 62 "ginkgo", 63 }, 64 Args: []string{ 65 "-r", 66 "-p", 67 "--randomize-all", 68 "--randomize-suites", 69 "--keep-going", 70 "--trace", 71 "--junit-report", 72 "<reportFile>", 73 "<envVars>", 74 "<runPath>", 75 }, 76 }) 77 78 assert.Equal(t, testkube.ExecutionStatusPassed, result.Status) 79 assert.NoError(t, err) 80 }) 81 82 t.Run("GinkgoRunner should run tests from a repo that fail", func(t *testing.T) { 83 t.Skipf("check again is the examples/others test correct") 84 t.Parallel() 85 86 tempDir, err := os.MkdirTemp("", "*") 87 assert.NoErrorf(t, err, "could not create temp dir: %v", err) 88 defer os.RemoveAll(tempDir) 89 90 params := envs.Params{DataDir: tempDir, GitUsername: "testuser", GitToken: "testtoken"} 91 runner, err := NewGinkgoRunner(ctx, params) 92 if err != nil { 93 t.Fail() 94 } 95 vars := make(map[string]testkube.Variable) 96 variableOne := testkube.Variable{ 97 Name: "GinkgoTestPackage", 98 Value: "examples/other", 99 Type_: testkube.VariableTypeBasic, 100 } 101 vars["GinkgoTestPackage"] = variableOne 102 103 repo := &testkube.Repository{ 104 Type_: "git", 105 Uri: repoURI, 106 Branch: "main", 107 } 108 109 _, err = content.NewFetcher(tempDir).FetchGit(repo) 110 assert.NoError(t, err) 111 112 result, err := runner.Run( 113 ctx, 114 testkube.Execution{ 115 Content: &testkube.TestContent{ 116 Type_: string(testkube.TestContentTypeGitDir), 117 Repository: repo, 118 }, 119 Variables: vars, 120 Command: []string{ 121 "ginkgo", 122 }, 123 Args: []string{ 124 "-r", 125 "-p", 126 "--randomize-all", 127 "--randomize-suites", 128 "--keep-going", 129 "--trace", 130 "--junit-report", 131 "<reportFile>", 132 "<envVars>", 133 "<runPath>", 134 }, 135 }) 136 137 assert.Equal(t, testkube.ExecutionStatusFailed, result.Status) 138 assert.NoError(t, err) 139 }) 140 }