MCPcopy Index your code
hub / github.com/cli/cli / TestNewCmdDelete

Function TestNewCmdDelete

pkg/cmd/label/delete_test.go:17–82  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

15)
16
17func TestNewCmdDelete(t *testing.T) {
18 tests := []struct {
19 name string
20 tty bool
21 input string
22 output deleteOptions
23 wantErr bool
24 wantErrMsg string
25 }{
26 {
27 name: "no argument",
28 input: "",
29 wantErr: true,
30 wantErrMsg: "cannot delete label: name argument required",
31 },
32 {
33 name: "name argument",
34 tty: true,
35 input: "test",
36 output: deleteOptions{Name: "test"},
37 },
38 {
39 name: "confirm argument",
40 input: "test --yes",
41 output: deleteOptions{Name: "test", Confirmed: true},
42 },
43 {
44 name: "confirm no tty",
45 input: "test",
46 wantErr: true,
47 wantErrMsg: "--yes required when not running interactively",
48 },
49 }
50
51 for _, tt := range tests {
52 t.Run(tt.name, func(t *testing.T) {
53 io, _, _, _ := iostreams.Test()
54 f := &cmdutil.Factory{
55 IOStreams: io,
56 }
57 io.SetStdinTTY(tt.tty)
58 io.SetStdoutTTY(tt.tty)
59
60 argv, err := shlex.Split(tt.input)
61 assert.NoError(t, err)
62 var gotOpts *deleteOptions
63 cmd := newCmdDelete(f, func(opts *deleteOptions) error {
64 gotOpts = opts
65 return nil
66 })
67 cmd.SetArgs(argv)
68 cmd.SetIn(&bytes.Buffer{})
69 cmd.SetOut(&bytes.Buffer{})
70 cmd.SetErr(&bytes.Buffer{})
71
72 _, err = cmd.ExecuteC()
73 if tt.wantErr {
74 assert.EqualError(t, err, tt.wantErrMsg)

Callers

nothing calls this directly

Calls 6

TestFunction · 0.92
newCmdDeleteFunction · 0.85
SetStdinTTYMethod · 0.80
SetStdoutTTYMethod · 0.80
EqualMethod · 0.80
RunMethod · 0.65

Tested by

no test coverage detected