summaryrefslogtreecommitdiff
path: root/subcommand_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'subcommand_test.go')
-rw-r--r--subcommand_test.go22
1 files changed, 21 insertions, 1 deletions
diff --git a/subcommand_test.go b/subcommand_test.go
index d17c604..02c7b54 100644
--- a/subcommand_test.go
+++ b/subcommand_test.go
@@ -4,12 +4,13 @@ import (
"testing"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
)
// This file contains tests for parse.go but I decided to put them here
// since that file is getting large
-func TestSubcommandNotAStruct(t *testing.T) {
+func TestSubcommandNotAPointer(t *testing.T) {
var args struct {
A string `arg:"subcommand"`
}
@@ -17,6 +18,14 @@ func TestSubcommandNotAStruct(t *testing.T) {
assert.Error(t, err)
}
+func TestSubcommandNotAPointerToStruct(t *testing.T) {
+ var args struct {
+ A struct{} `arg:"subcommand"`
+ }
+ _, err := NewParser(Config{}, &args)
+ assert.Error(t, err)
+}
+
func TestPositionalAndSubcommandNotAllowed(t *testing.T) {
var args struct {
A string `arg:"positional"`
@@ -25,3 +34,14 @@ func TestPositionalAndSubcommandNotAllowed(t *testing.T) {
_, err := NewParser(Config{}, &args)
assert.Error(t, err)
}
+
+func TestMinimalSubcommand(t *testing.T) {
+ type listCmd struct {
+ }
+ var args struct {
+ List *listCmd `arg:"subcommand"`
+ }
+ err := parse("list", &args)
+ require.NoError(t, err)
+ assert.NotNil(t, args.List)
+}