MCPcopy
hub / github.com/urfave/cli / TestCommand_Run_CustomShellCompleteAcceptsMalformedFlags

Function TestCommand_Run_CustomShellCompleteAcceptsMalformedFlags

command_test.go:597–638  ·  command_test.go::TestCommand_Run_CustomShellCompleteAcceptsMalformedFlags
(t *testing.T)

Source from the content-addressed store, hash-verified

595}
596
597func TestCommand_Run_CustomShellCompleteAcceptsMalformedFlags(t *testing.T) {
598 cases := []struct {
599 testArgs *stringSliceArgs
600 expectedOut string
601 }{
602 {testArgs: &stringSliceArgs{v: []string{"--undefined"}}, expectedOut: "found 1 args"},
603 {testArgs: &stringSliceArgs{v: []string{"--number"}}, expectedOut: "found 1 args"},
604 {testArgs: &stringSliceArgs{v: []string{"--number", "forty-two"}}, expectedOut: "found 0 args"},
605 {testArgs: &stringSliceArgs{v: []string{"--number", "42"}}, expectedOut: "found 0 args"},
606 {testArgs: &stringSliceArgs{v: []string{"--number", "42", "newArg"}}, expectedOut: "found 1 args"},
607 }
608
609 for _, c := range cases {
610 t.Run(strings.Join(c.testArgs.Slice(), " "), func(t *testing.T) {
611 out := &bytes.Buffer{}
612 cmd := &Command{
613 Writer: out,
614 EnableShellCompletion: true,
615 Name: "bar",
616 Usage: "this is for testing",
617 Flags: []Flag{
618 &Int64Flag{
619 Name: "number",
620 Usage: "A number to parse",
621 },
622 },
623 ShellComplete: func(_ context.Context, cmd *Command) {
624 fmt.Fprintf(cmd.Root().Writer, "found %[1]d args", cmd.NArg())
625 },
626 }
627
628 osArgs := &stringSliceArgs{v: []string{"bar"}}
629 osArgs.v = append(osArgs.v, c.testArgs.Slice()...)
630 osArgs.v = append(osArgs.v, completionFlag)
631
632 r := require.New(t)
633
634 r.NoError(cmd.Run(buildTestContext(t), osArgs.Slice()))
635 r.Equal(c.expectedOut, out.String())
636 })
637 }
638}
639
640func TestCommand_CanAddVFlagOnSubCommands(t *testing.T) {
641 cmd := &Command{

Callers

nothing calls this directly

Calls 7

RunMethod · 0.95
RootMethod · 0.95
NArgMethod · 0.95
SliceMethod · 0.95
buildTestContextFunction · 0.85
SliceMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected