Files
pmg/cmd/setup/setup_test.go
T

67 lines
1.6 KiB
Go
Raw Normal View History

2026-07-10 23:33:52 +05:30
package setup
import (
"runtime"
"testing"
"github.com/safedep/dry/usefulerror"
"github.com/safedep/pmg/errcodes"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestErrIfSystemInstallAllowed(t *testing.T) {
orig := setupGeteuid
t.Cleanup(func() { setupGeteuid = orig })
setupGeteuid = func() int { return 0 }
err := errIfSystemInstallAllowed()
if runtime.GOOS == "linux" {
assert.NoError(t, err)
} else {
require.Error(t, err)
usefulErr, ok := usefulerror.AsUsefulError(err)
require.True(t, ok)
assert.Equal(t, errcodes.UnsupportedPlatform, usefulErr.Code())
}
setupGeteuid = func() int { return 1000 }
err = errIfSystemInstallAllowed()
require.Error(t, err)
usefulErr, ok := usefulerror.AsUsefulError(err)
require.True(t, ok)
if runtime.GOOS == "linux" {
assert.Equal(t, errcodes.PermissionDenied, usefulErr.Code())
} else {
assert.Equal(t, errcodes.UnsupportedPlatform, usefulErr.Code())
}
}
func TestInstallSystemRequiresLinuxAndRoot(t *testing.T) {
orig := setupGeteuid
t.Cleanup(func() {
setupGeteuid = orig
setupInstallSystem = false
})
setupInstallSystem = true
setupGeteuid = func() int { return 0 }
err := install()
if runtime.GOOS == "linux" {
if err != nil {
usefulErr, ok := usefulerror.AsUsefulError(err)
if ok {
assert.NotEqual(t, errcodes.UnsupportedPlatform, usefulErr.Code())
assert.NotEqual(t, errcodes.PermissionDenied, usefulErr.Code())
}
}
return
}
require.Error(t, err)
usefulErr, ok := usefulerror.AsUsefulError(err)
require.True(t, ok)
assert.Equal(t, errcodes.UnsupportedPlatform, usefulErr.Code())
}