mirror of
https://github.com/gopasspw/gopass.git
synced 2026-05-30 11:18:48 +02:00
7281ca8ab4
* [chore] Migrate to golangci-lint v2 Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issue Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Add more package comments. Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix golangci-lint config and the remaining checks Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Use Go 1.24 Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Fix container builds Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix more failing tests Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix test failure Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix another len assertion Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Move location tests Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Fix most remaining lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Only run XDG specific tests on linux Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Attempt to address on source of flaky failures Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> --------- Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
96 lines
1.9 KiB
Go
96 lines
1.9 KiB
Go
package zsh
|
|
|
|
import (
|
|
"flag"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
type unknownFlag struct{}
|
|
|
|
func (u *unknownFlag) String() string {
|
|
return ""
|
|
}
|
|
|
|
func (u *unknownFlag) Apply(*flag.FlagSet) error {
|
|
return nil
|
|
}
|
|
|
|
func (u *unknownFlag) GetName() string {
|
|
return ""
|
|
}
|
|
|
|
func (u *unknownFlag) IsSet() bool {
|
|
return true
|
|
}
|
|
|
|
func (u *unknownFlag) Names() []string {
|
|
return []string{}
|
|
}
|
|
|
|
func TestFormatFlag(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
for _, tc := range []struct {
|
|
name string
|
|
usage string
|
|
out string
|
|
}{
|
|
{"print, p", "Print", "--print[Print]"},
|
|
} {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
t.Parallel()
|
|
assert.Equal(t, tc.out, formatFlag(tc.name, tc.usage))
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestGetCompletion(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
app := cli.NewApp()
|
|
sv, err := GetCompletion(app)
|
|
require.NoError(t, err)
|
|
assert.Contains(t, sv, "#compdef zsh.test")
|
|
|
|
zshTemplate = "{{.unexported}}"
|
|
sv, err = GetCompletion(app)
|
|
require.Error(t, err)
|
|
assert.Contains(t, sv, "")
|
|
|
|
zshTemplate = "{{}}"
|
|
sv, err = GetCompletion(app)
|
|
require.Error(t, err)
|
|
assert.Contains(t, sv, "")
|
|
}
|
|
|
|
func TestFormatflagFunc(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
ff := formatFlagFunc()
|
|
for _, flag := range []cli.Flag{
|
|
&cli.BoolFlag{Name: "foo", Usage: "bar"},
|
|
&cli.Float64Flag{Name: "foo", Usage: "bar"},
|
|
&cli.GenericFlag{Name: "foo", Usage: "bar"},
|
|
&cli.Int64Flag{Name: "foo", Usage: "bar"},
|
|
&cli.Int64SliceFlag{Name: "foo", Usage: "bar"},
|
|
&cli.IntFlag{Name: "foo", Usage: "bar"},
|
|
&cli.IntSliceFlag{Name: "foo", Usage: "bar"},
|
|
&cli.StringFlag{Name: "foo", Usage: "bar"},
|
|
&cli.StringSliceFlag{Name: "foo", Usage: "bar"},
|
|
&cli.Uint64Flag{Name: "foo", Usage: "bar"},
|
|
&cli.UintFlag{Name: "foo", Usage: "bar"},
|
|
} {
|
|
sv, err := ff(flag)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "--foo[bar]", sv)
|
|
}
|
|
|
|
sv, err := ff(&unknownFlag{})
|
|
require.Error(t, err)
|
|
assert.Empty(t, sv)
|
|
}
|