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  }