go-arg/subcommand_test.go

48 lines
976 B
Go
Raw Normal View History

2019-04-30 14:54:39 -05:00
package arg
import (
"testing"
"github.com/stretchr/testify/assert"
2019-04-30 15:30:23 -05:00
"github.com/stretchr/testify/require"
2019-04-30 14:54:39 -05:00
)
// This file contains tests for parse.go but I decided to put them here
// since that file is getting large
2019-04-30 15:30:23 -05:00
func TestSubcommandNotAPointer(t *testing.T) {
2019-04-30 14:54:39 -05:00
var args struct {
A string `arg:"subcommand"`
}
_, err := NewParser(Config{}, &args)
assert.Error(t, err)
}
2019-04-30 15:30:23 -05:00
func TestSubcommandNotAPointerToStruct(t *testing.T) {
var args struct {
A struct{} `arg:"subcommand"`
}
_, err := NewParser(Config{}, &args)
assert.Error(t, err)
}
2019-04-30 14:54:39 -05:00
func TestPositionalAndSubcommandNotAllowed(t *testing.T) {
var args struct {
A string `arg:"positional"`
B struct{} `arg:"subcommand"`
}
_, err := NewParser(Config{}, &args)
assert.Error(t, err)
}
2019-04-30 15:30:23 -05:00
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)
}