Skip to content

Commit c5f45e4

Browse files
committed
add test for custom implementation
1 parent 1259518 commit c5f45e4

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

agent/agentssh/agentssh_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"context"
99
"fmt"
1010
"net"
11+
"os/user"
1112
"runtime"
1213
"strings"
1314
"sync"
@@ -102,6 +103,39 @@ func TestNewServer_ExecuteShebang(t *testing.T) {
102103
require.NoError(t, err)
103104
require.Equal(t, "test\n", string(output))
104105
})
106+
t.Run("CustomEnvInfoer", func(t *testing.T) {
107+
t.Parallel()
108+
ei := &fakeEnvInfoer{
109+
CurrentUserFn: func() (u *user.User, err error) {
110+
return nil, assert.AnError
111+
},
112+
}
113+
_, err := s.CreateCommand(ctx, `whatever`, nil, ei)
114+
require.ErrorIs(t, err, assert.AnError)
115+
})
116+
}
117+
118+
type fakeEnvInfoer struct {
119+
CurrentUserFn func() (*user.User, error)
120+
EnvironFn func() []string
121+
UserHomeDirFn func() (string, error)
122+
UserShellFn func(string) (string, error)
123+
}
124+
125+
func (f *fakeEnvInfoer) CurrentUser() (u *user.User, err error) {
126+
return f.CurrentUserFn()
127+
}
128+
129+
func (f *fakeEnvInfoer) Environ() []string {
130+
return f.EnvironFn()
131+
}
132+
133+
func (f *fakeEnvInfoer) UserHomeDir() (string, error) {
134+
return f.UserHomeDirFn()
135+
}
136+
137+
func (f *fakeEnvInfoer) UserShell(u string) (string, error) {
138+
return f.UserShellFn(u)
105139
}
106140

107141
func TestNewServer_CloseActiveConnections(t *testing.T) {

0 commit comments

Comments
 (0)