mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
fix(agent/usershell): check shell on darwin via dscl (#8366)
This commit is contained in:
committed by
GitHub
parent
de1d04d7bb
commit
e508d9aa6e
@@ -0,0 +1,46 @@
|
||||
package usershell_test
|
||||
|
||||
import (
|
||||
"os/user"
|
||||
"runtime"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/coder/coder/agent/usershell"
|
||||
)
|
||||
|
||||
//nolint:paralleltest,tparallel // This test sets an environment variable.
|
||||
func TestGet(t *testing.T) {
|
||||
if runtime.GOOS == "windows" {
|
||||
t.SkipNow()
|
||||
}
|
||||
|
||||
t.Run("Fallback", func(t *testing.T) {
|
||||
t.Setenv("SHELL", "/bin/sh")
|
||||
|
||||
t.Run("NonExistentUser", func(t *testing.T) {
|
||||
shell, err := usershell.Get("notauser")
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, "/bin/sh", shell)
|
||||
})
|
||||
})
|
||||
|
||||
t.Run("NoFallback", func(t *testing.T) {
|
||||
// Disable env fallback for these tests.
|
||||
t.Setenv("SHELL", "")
|
||||
|
||||
t.Run("NotFound", func(t *testing.T) {
|
||||
_, err := usershell.Get("notauser")
|
||||
require.Error(t, err)
|
||||
})
|
||||
|
||||
t.Run("User", func(t *testing.T) {
|
||||
u, err := user.Current()
|
||||
require.NoError(t, err)
|
||||
shell, err := usershell.Get(u.Username)
|
||||
require.NoError(t, err)
|
||||
require.NotEmpty(t, shell)
|
||||
})
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user