sq/cli/cobraz/cobraz_test.go
2023-11-19 18:06:36 -07:00

44 lines
1.1 KiB
Go

package cobraz
import (
"testing"
"github.com/spf13/cobra"
"github.com/stretchr/testify/require"
"github.com/neilotoole/sq/testh/tutil"
)
func TestExtractDirectives(t *testing.T) {
testCases := []struct {
in cobra.ShellCompDirective
want []cobra.ShellCompDirective
wantStrings []string
}{
{
cobra.ShellCompDirectiveError,
[]cobra.ShellCompDirective{cobra.ShellCompDirectiveError},
[]string{ShellCompDirectiveErrorText},
},
{
cobra.ShellCompDirectiveError | cobra.ShellCompDirectiveNoSpace,
[]cobra.ShellCompDirective{cobra.ShellCompDirectiveError, cobra.ShellCompDirectiveNoSpace},
[]string{ShellCompDirectiveErrorText, ShellCompDirectiveNoSpaceText},
},
{
cobra.ShellCompDirectiveDefault,
[]cobra.ShellCompDirective{cobra.ShellCompDirectiveDefault},
[]string{ShellCompDirectiveDefaultText},
},
}
for i, tc := range testCases {
t.Run(tutil.Name(i, tc.in), func(t *testing.T) {
gotDirectives := ExtractDirectives(tc.in)
require.Equal(t, tc.want, gotDirectives)
gotStrings := MarshalDirective(tc.in)
require.Equal(t, tc.wantStrings, gotStrings)
})
}
}