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

Function TestExpandShellAlias

pkg/cmd/root/alias_test.go:75–123  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

73}
74
75func TestExpandShellAlias(t *testing.T) {
76 findShFunc := func() (string, error) {
77 return "/usr/bin/sh", nil
78 }
79 tests := []struct {
80 name string
81 expansion string
82 args []string
83 findSh func() (string, error)
84 wantExpanded []string
85 wantErr string
86 }{
87 {
88 name: "simple expansion",
89 expansion: "!git branch --show-current",
90 args: []string{},
91 findSh: findShFunc,
92 wantExpanded: []string{"/usr/bin/sh", "-c", "git branch --show-current"},
93 },
94 {
95 name: "adding arguments after expansion",
96 expansion: "!git branch checkout",
97 args: []string{"123"},
98 findSh: findShFunc,
99 wantExpanded: []string{"/usr/bin/sh", "-c", "git branch checkout", "--", "123"},
100 },
101 {
102 name: "unable to find sh",
103 expansion: "!git branch --show-current",
104 args: []string{},
105 findSh: func() (string, error) {
106 return "", errors.New("unable to locate sh")
107 },
108 wantErr: "unable to locate sh",
109 },
110 }
111 for _, tt := range tests {
112 t.Run(tt.name, func(t *testing.T) {
113 gotExpanded, err := expandShellAlias(tt.expansion, tt.args, tt.findSh)
114 if tt.wantErr != "" {
115 assert.Nil(t, gotExpanded)
116 assert.EqualError(t, err, tt.wantErr)
117 return
118 }
119 assert.NoError(t, err)
120 assert.Equal(t, tt.wantExpanded, gotExpanded)
121 })
122 }
123}

Callers

nothing calls this directly

Calls 3

expandShellAliasFunction · 0.85
EqualMethod · 0.80
RunMethod · 0.65

Tested by

no test coverage detected