Skip to content

Commit b716257

Browse files
committed
chore: cover the successful run-as user resolution
1 parent d87d3d9 commit b716257

1 file changed

Lines changed: 35 additions & 0 deletions

File tree

plugin_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ package server
33
import (
44
"log/slog"
55
"os"
6+
"os/user"
7+
"runtime"
8+
"strconv"
69
"testing"
710
"time"
811

@@ -77,6 +80,38 @@ func TestCommandUnknownUser(t *testing.T) {
7780
})
7881
}
7982

83+
func TestInitResolvesUser(t *testing.T) {
84+
if runtime.GOOS == "windows" {
85+
t.Skip("server.user is not supported on windows")
86+
}
87+
88+
current, err := user.Current()
89+
require.NoError(t, err)
90+
91+
log := slog.New(slog.NewTextHandler(os.Stderr, nil))
92+
p := &Plugin{
93+
preparedEnvs: make([]string, 0),
94+
cfg: &Config{},
95+
log: log,
96+
}
97+
98+
v := viper.New()
99+
v.Set("server.command", "php php_test_files/client.php echo pipes")
100+
v.Set("server.user", current.Username)
101+
102+
cfg, err := InitMockCfg(v)
103+
require.NoError(t, err)
104+
require.NoError(t, p.Init(cfg, NewTestLogger(log)))
105+
106+
uid, err := strconv.Atoi(current.Uid)
107+
require.NoError(t, err)
108+
gid, err := strconv.Atoi(current.Gid)
109+
require.NoError(t, err)
110+
111+
require.Equal(t, uid, p.UID())
112+
require.Equal(t, gid, p.GID())
113+
}
114+
80115
func TestInitUnknownUser(t *testing.T) {
81116
log := slog.New(slog.NewTextHandler(os.Stderr, nil))
82117
p := &Plugin{

0 commit comments

Comments
 (0)