mirror of
https://github.com/netbirdio/netbird.git
synced 2026-08-04 19:55:09 -04:00
100 lines
2.9 KiB
Go
100 lines
2.9 KiB
Go
//go:build !ios && !android
|
|
|
|
package cmd
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/spf13/cobra"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestBuildSetSSHConfigArgs(t *testing.T) {
|
|
tr, fa := true, false
|
|
|
|
t.Run("enable root only, with daemon-addr", func(t *testing.T) {
|
|
got := buildSetSSHConfigArgs("prof", "alice", &tr, nil, "unix:///x.sock")
|
|
assert.Equal(t, []string{
|
|
SetSSHConfigCmdName, "--profile", "prof", "--username", "alice",
|
|
"--" + enableSSHRootFlag, "--daemon-addr", "unix:///x.sock",
|
|
}, got)
|
|
})
|
|
|
|
t.Run("disable auth only, no daemon-addr", func(t *testing.T) {
|
|
got := buildSetSSHConfigArgs("prof", "alice", nil, &tr, "")
|
|
assert.Equal(t, []string{
|
|
SetSSHConfigCmdName, "--profile", "prof", "--username", "alice",
|
|
"--" + disableSSHAuthFlag,
|
|
}, got)
|
|
})
|
|
|
|
t.Run("false pointers omit the flags", func(t *testing.T) {
|
|
got := buildSetSSHConfigArgs("", "", &fa, &fa, "")
|
|
assert.Equal(t, []string{SetSSHConfigCmdName}, got)
|
|
})
|
|
|
|
t.Run("both enabled", func(t *testing.T) {
|
|
got := buildSetSSHConfigArgs("p", "u", &tr, &tr, "")
|
|
assert.Equal(t, []string{
|
|
SetSSHConfigCmdName, "--profile", "p", "--username", "u",
|
|
"--" + enableSSHRootFlag, "--" + disableSSHAuthFlag,
|
|
}, got)
|
|
})
|
|
}
|
|
|
|
func TestBuildSetSSHConfigRequest(t *testing.T) {
|
|
tr := true
|
|
|
|
req := buildSetSSHConfigRequest("p", "u", &tr, nil)
|
|
assert.Equal(t, "p", req.ProfileName)
|
|
assert.Equal(t, "u", req.Username)
|
|
if assert.NotNil(t, req.EnableSSHRoot) {
|
|
assert.True(t, *req.EnableSSHRoot)
|
|
}
|
|
assert.Nil(t, req.DisableSSHAuth, "an unset flag must leave the daemon value untouched")
|
|
}
|
|
|
|
func TestWantsDangerousSSH(t *testing.T) {
|
|
origRoot, origAuth := enableSSHRoot, disableSSHAuth
|
|
t.Cleanup(func() { enableSSHRoot, disableSSHAuth = origRoot, origAuth })
|
|
|
|
newCmd := func() *cobra.Command {
|
|
enableSSHRoot, disableSSHAuth = false, false
|
|
c := &cobra.Command{Use: "x"}
|
|
c.Flags().BoolVar(&enableSSHRoot, enableSSHRootFlag, false, "")
|
|
c.Flags().BoolVar(&disableSSHAuth, disableSSHAuthFlag, false, "")
|
|
return c
|
|
}
|
|
|
|
// wantsDangerousSSH fires only in the privileged direction.
|
|
t.Run("enable root true is dangerous", func(t *testing.T) {
|
|
c := newCmd()
|
|
require.NoError(t, c.Flags().Set(enableSSHRootFlag, "true"))
|
|
assert.True(t, wantsDangerousSSH(c))
|
|
})
|
|
|
|
t.Run("enable root false is not dangerous", func(t *testing.T) {
|
|
c := newCmd()
|
|
require.NoError(t, c.Flags().Set(enableSSHRootFlag, "false"))
|
|
assert.False(t, wantsDangerousSSH(c))
|
|
})
|
|
|
|
t.Run("disable auth true is dangerous", func(t *testing.T) {
|
|
c := newCmd()
|
|
require.NoError(t, c.Flags().Set(disableSSHAuthFlag, "true"))
|
|
assert.True(t, wantsDangerousSSH(c))
|
|
})
|
|
|
|
t.Run("disable auth false is not dangerous", func(t *testing.T) {
|
|
c := newCmd()
|
|
require.NoError(t, c.Flags().Set(disableSSHAuthFlag, "false"))
|
|
assert.False(t, wantsDangerousSSH(c))
|
|
})
|
|
|
|
t.Run("nothing changed is not dangerous", func(t *testing.T) {
|
|
c := newCmd()
|
|
assert.False(t, wantsDangerousSSH(c))
|
|
})
|
|
}
|