Fix enum's from envars not validating (fixes #107).

Also added a mapper for `*os.File`.
This commit is contained in:
Alec Thomas
2020-09-08 13:09:04 +10:00
parent cbae65d227
commit 88ecc9c4e9
7 changed files with 64 additions and 7 deletions
+18
View File
@@ -345,3 +345,21 @@ func TestNumbers(t *testing.T) {
}, cli)
})
}
func TestFileMapper(t *testing.T) {
type CLI struct {
File *os.File `arg:""`
}
var cli CLI
p := mustNew(t, &cli)
_, err := p.Parse([]string{"testdata/file.txt"})
require.NoError(t, err)
require.NotNil(t, cli.File)
_ = cli.File.Close()
_, err = p.Parse([]string{"testdata/missing.txt"})
require.Error(t, err)
require.Contains(t, err.Error(), "missing.txt: no such file or directory")
_, err = p.Parse([]string{"-"})
require.NoError(t, err)
require.Equal(t, os.Stdin, cli.File)
}