mirror of https://github.com/coder/coder.git
47 lines
971 B
Go
47 lines
971 B
Go
package usershell_test
|
|
|
|
import (
|
|
"os/user"
|
|
"runtime"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/coder/coder/v2/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)
|
|
})
|
|
})
|
|
}
|