gitlab.com/lab-cli/lab@v0.14.0/cmd/ci_trace_test.go (about) 1 package cmd 2 3 import ( 4 "os/exec" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func Test_ciTrace(t *testing.T) { 11 t.Parallel() 12 repo := copyTestRepo(t) 13 cmd := exec.Command("../lab_bin", "fetch", "origin") 14 cmd.Dir = repo 15 if b, err := cmd.CombinedOutput(); err != nil { 16 t.Log(string(b)) 17 t.Fatal(err) 18 } 19 20 cmd = exec.Command("../lab_bin", "checkout", "origin/ci_test_pipeline") 21 cmd.Dir = repo 22 if b, err := cmd.CombinedOutput(); err != nil { 23 t.Log(string(b)) 24 t.Fatal(err) 25 } 26 27 cmd = exec.Command("../lab_bin", "checkout", "-b", "ci_test_pipeline") 28 cmd.Dir = repo 29 if b, err := cmd.CombinedOutput(); err != nil { 30 t.Log(string(b)) 31 t.Fatal(err) 32 } 33 34 tests := []struct { 35 desc string 36 args []string 37 assertContains func(t *testing.T, out string) 38 }{ 39 { 40 desc: "noargs", 41 args: []string{}, 42 assertContains: func(t *testing.T, out string) { 43 assert.Contains(t, out, "Showing logs for deploy10") 44 assert.Contains(t, out, "Checking out 09b519cb as ci_test_pipeline...") 45 assert.Contains(t, out, "For example you might run an update here or install a build dependency") 46 assert.Contains(t, out, "$ echo \"Or perhaps you might print out some debugging details\"") 47 assert.Contains(t, out, "Job succeeded") 48 }, 49 }, 50 { 51 desc: "arg job name", 52 args: []string{"origin", "deploy1"}, 53 assertContains: func(t *testing.T, out string) { 54 assert.Contains(t, out, "Showing logs for deploy1") 55 assert.Contains(t, out, "Checking out 09b519cb as ci_test_pipeline...") 56 assert.Contains(t, out, "For example you might run an update here or install a build dependency") 57 assert.Contains(t, out, "$ echo \"Or perhaps you might print out some debugging details\"") 58 assert.Contains(t, out, "Job succeeded") 59 }, 60 }, 61 { 62 desc: "explicit branch:job", 63 args: []string{"origin", "ci_test_pipeline:deploy1"}, 64 assertContains: func(t *testing.T, out string) { 65 assert.Contains(t, out, "Showing logs for deploy1") 66 assert.Contains(t, out, "Checking out 09b519cb as ci_test_pipeline...") 67 assert.Contains(t, out, "For example you might do some cleanup here") 68 assert.Contains(t, out, "Job succeeded") 69 }, 70 }, 71 } 72 73 for _, test := range tests { 74 test := test 75 t.Run(test.desc, func(t *testing.T) { 76 t.Parallel() 77 cmd = exec.Command("../lab_bin", append([]string{"ci", "trace"}, test.args...)...) 78 cmd.Dir = repo 79 80 b, err := cmd.CombinedOutput() 81 if err != nil { 82 t.Log(string(b)) 83 t.Fatal(err) 84 } 85 out := string(b) 86 test.assertContains(t, out) 87 }) 88 } 89 90 }