github.com/GGP1/kure@v0.8.4/commands/card/ls/ls_test.go (about)

     1  package ls
     2  
     3  import (
     4  	"testing"
     5  
     6  	cmdutil "github.com/GGP1/kure/commands"
     7  	"github.com/GGP1/kure/db/card"
     8  	"github.com/GGP1/kure/pb"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestLs(t *testing.T) {
    14  	db := cmdutil.SetContext(t)
    15  
    16  	err := card.Create(db, &pb.Card{
    17  		Name:   "test",
    18  		Number: "1500135",
    19  	})
    20  	assert.NoError(t, err, "Failed creating the card")
    21  
    22  	cases := []struct {
    23  		desc   string
    24  		name   string
    25  		filter string
    26  		hide   string
    27  		qr     string
    28  	}{
    29  		{
    30  			desc: "List one",
    31  			name: "test",
    32  		},
    33  		{
    34  			desc: "List one and show qr",
    35  			name: "test",
    36  			qr:   "true",
    37  		},
    38  		{
    39  			desc:   "Filter by name",
    40  			name:   "te*",
    41  			filter: "true",
    42  		},
    43  		{
    44  			desc: "List all",
    45  			name: "",
    46  		},
    47  		{
    48  			desc: "List one and hide",
    49  			name: "test",
    50  			hide: "true",
    51  		},
    52  	}
    53  
    54  	cmd := NewCmd(db)
    55  	f := cmd.Flags()
    56  
    57  	for _, tc := range cases {
    58  		t.Run(tc.desc, func(t *testing.T) {
    59  			cmd.SetArgs([]string{tc.name})
    60  			f.Set("filter", tc.filter)
    61  			f.Set("hide", tc.hide)
    62  			f.Set("qr", tc.qr)
    63  
    64  			err := cmd.Execute()
    65  			assert.NoError(t, err)
    66  		})
    67  	}
    68  }
    69  
    70  func TestLsErrors(t *testing.T) {
    71  	db := cmdutil.SetContext(t)
    72  
    73  	err := card.Create(db, &pb.Card{Name: "test"})
    74  	assert.NoError(t, err, "Failed creating the card")
    75  
    76  	cases := []struct {
    77  		desc   string
    78  		name   string
    79  		filter string
    80  		qr     string
    81  	}{
    82  		{
    83  			desc:   "Card does not exist",
    84  			name:   "non-existent",
    85  			filter: "false",
    86  		},
    87  		{
    88  			desc:   "No cards found",
    89  			name:   "non-existent",
    90  			filter: "true",
    91  		},
    92  		{
    93  			desc:   "Filter syntax error",
    94  			name:   "[error",
    95  			filter: "true",
    96  		},
    97  		{
    98  			desc: "No data to encode",
    99  			name: "test",
   100  			qr:   "true",
   101  		},
   102  	}
   103  
   104  	cmd := NewCmd(db)
   105  
   106  	for _, tc := range cases {
   107  		t.Run(tc.desc, func(t *testing.T) {
   108  			cmd.SetArgs([]string{tc.name})
   109  			f := cmd.Flags()
   110  			f.Set("filter", tc.filter)
   111  			f.Set("qr", tc.qr)
   112  
   113  			err := cmd.Execute()
   114  			assert.Error(t, err)
   115  		})
   116  	}
   117  }
   118  
   119  func TestPostRun(t *testing.T) {
   120  	NewCmd(nil).PostRun(nil, nil)
   121  }