github.com/ianfoo/lab@v0.9.5-0.20180123060006-5ed79f2ccfc7/cmd/issue_test.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "os/exec" 6 "strings" 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 ) 11 12 func Test_issueCmd(t *testing.T) { 13 t.Parallel() 14 var issueID string 15 t.Run("create", func(t *testing.T) { 16 repo := copyTestRepo(t) 17 cmd := exec.Command("../lab_bin", "issue", "create", "lab-testing", 18 "-m", "issue title") 19 cmd.Dir = repo 20 21 b, err := cmd.CombinedOutput() 22 if err != nil { 23 t.Log(string(b)) 24 t.Fatal(err) 25 } 26 27 out := string(b) 28 require.Contains(t, out, "https://gitlab.com/lab-testing/test/issues/") 29 30 i := strings.Index(out, "\n") 31 issueID = strings.TrimPrefix(out[:i], "https://gitlab.com/lab-testing/test/issues/") 32 t.Log(issueID) 33 }) 34 t.Run("delete", func(t *testing.T) { 35 if issueID == "" { 36 t.Skip("issueID is empty, create likely failed") 37 } 38 repo := copyTestRepo(t) 39 cmd := exec.Command("../lab_bin", "issue", "lab-testing", "-d", issueID) 40 cmd.Dir = repo 41 42 b, err := cmd.CombinedOutput() 43 if err != nil { 44 t.Log(string(b)) 45 t.Fatal(err) 46 } 47 require.Contains(t, string(b), fmt.Sprintf("Issue #%s closed", issueID)) 48 }) 49 } 50 51 func Test_issueCmd_noArgs(t *testing.T) { 52 repo := copyTestRepo(t) 53 cmd := exec.Command("../lab_bin", "issue") 54 cmd.Dir = repo 55 56 b, err := cmd.CombinedOutput() 57 if err != nil { 58 t.Log(string(b)) 59 t.Fatal(err) 60 } 61 require.Contains(t, string(b), `Usage: 62 lab issue [flags] 63 lab issue [command]`) 64 }