github.com/matthewdale/lab@v0.14.0/cmd/mr_list_test.go (about)

     1  package cmd
     2  
     3  import (
     4  	"os/exec"
     5  	"strings"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func Test_mrList(t *testing.T) {
    12  	t.Parallel()
    13  	repo := copyTestRepo(t)
    14  	cmd := exec.Command("../lab_bin", "mr", "list")
    15  	cmd.Dir = repo
    16  
    17  	b, err := cmd.CombinedOutput()
    18  	if err != nil {
    19  		t.Fatal(err)
    20  	}
    21  
    22  	mrs := strings.Split(string(b), "\n")
    23  	t.Log(mrs)
    24  	require.Contains(t, mrs, "#1 Test MR for lab list")
    25  }
    26  
    27  func Test_mrListFlagLabel(t *testing.T) {
    28  	t.Parallel()
    29  	repo := copyTestRepo(t)
    30  	cmd := exec.Command("../lab_bin", "mr", "list", "-l", "confirmed")
    31  	cmd.Dir = repo
    32  
    33  	b, err := cmd.CombinedOutput()
    34  	if err != nil {
    35  		t.Fatal(err)
    36  	}
    37  
    38  	mrs := strings.Split(string(b), "\n")
    39  	t.Log(mrs)
    40  	require.Contains(t, mrs, "#3 for testings filtering with labels and lists")
    41  }
    42  
    43  func Test_mrListStateMerged(t *testing.T) {
    44  	t.Parallel()
    45  	repo := copyTestRepo(t)
    46  	cmd := exec.Command("../lab_bin", "mr", "list", "-s", "merged")
    47  	cmd.Dir = repo
    48  
    49  	b, err := cmd.CombinedOutput()
    50  	if err != nil {
    51  		t.Fatal(err)
    52  	}
    53  
    54  	mrs := strings.Split(string(b), "\n")
    55  	t.Log(mrs)
    56  	require.Contains(t, mrs, "#4 merged merge request")
    57  }
    58  
    59  func Test_mrListStateClosed(t *testing.T) {
    60  	t.Parallel()
    61  	repo := copyTestRepo(t)
    62  	cmd := exec.Command("../lab_bin", "mr", "list", "-s", "closed")
    63  	cmd.Dir = repo
    64  
    65  	b, err := cmd.CombinedOutput()
    66  	if err != nil {
    67  		t.Fatal(err)
    68  	}
    69  
    70  	mrs := strings.Split(string(b), "\n")
    71  	t.Log(mrs)
    72  	require.Contains(t, mrs, "#5 closed mr")
    73  
    74  }
    75  
    76  func Test_mrListFivePerPage(t *testing.T) {
    77  	t.Parallel()
    78  	repo := copyTestRepo(t)
    79  	cmd := exec.Command("../lab_bin", "mr", "list", "-n", "5")
    80  	cmd.Dir = repo
    81  
    82  	b, err := cmd.CombinedOutput()
    83  	if err != nil {
    84  		t.Fatal(err)
    85  	}
    86  
    87  	mrs := strings.Split(string(b), "\n")
    88  	t.Log(mrs)
    89  	require.Contains(t, mrs, "#1 Test MR for lab list")
    90  }
    91  
    92  func Test_mrFilterByTargetBranch(t *testing.T) {
    93  	t.Parallel()
    94  	repo := copyTestRepo(t)
    95  	cmd := exec.Command("../lab_bin", "mr", "list", "-t", "non-existing")
    96  	cmd.Dir = repo
    97  
    98  	b, err := cmd.CombinedOutput()
    99  	if err != nil {
   100  		t.Fatal(err)
   101  	}
   102  
   103  	mrs := strings.Split(string(b), "\n")
   104  	require.Equal(t, 3, len(mrs))
   105  }
   106  
   107  func Test_mrListByTargetBranch(t *testing.T) {
   108  	t.Parallel()
   109  	repo := copyTestRepo(t)
   110  	cmd := exec.Command("../lab_bin", "mr", "list", "-t", "master")
   111  	cmd.Dir = repo
   112  
   113  	b, err := cmd.CombinedOutput()
   114  	if err != nil {
   115  		t.Fatal(err)
   116  	}
   117  
   118  	mrs := strings.Split(string(b), "\n")
   119  	require.Equal(t, "#1 Test MR for lab list", mrs[0])
   120  }