summaryrefslogtreecommitdiff
path: root/internal/sshenv/sshenv_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/sshenv/sshenv_test.go')
-rw-r--r--internal/sshenv/sshenv_test.go43
1 files changed, 38 insertions, 5 deletions
diff --git a/internal/sshenv/sshenv_test.go b/internal/sshenv/sshenv_test.go
index e4a640e..43d060a 100644
--- a/internal/sshenv/sshenv_test.go
+++ b/internal/sshenv/sshenv_test.go
@@ -7,14 +7,47 @@ import (
"gitlab.com/gitlab-org/gitlab-shell/internal/testhelper"
)
-func TestLocalAddr(t *testing.T) {
- cleanup, err := testhelper.Setenv("SSH_CONNECTION", "127.0.0.1 0")
+func TestNewFromEnv(t *testing.T) {
+ tests := []struct {
+ desc string
+ environment map[string]string
+ want Env
+ }{
+ {
+ desc: "It parses GIT_PROTOCOL",
+ environment: map[string]string{GitProtocolEnv: "2"},
+ want: Env{GitProtocolVersion: "2"},
+ },
+ {
+ desc: "It parses SSH_CONNECTION",
+ environment: map[string]string{SSHConnectionEnv: "127.0.0.1 0 127.0.0.2 65535"},
+ want: Env{IsSSHConnection: true, RemoteAddr: "127.0.0.1"},
+ },
+ {
+ desc: "It parses SSH_ORIGINAL_COMMAND",
+ environment: map[string]string{SSHOriginalCommandEnv: "git-receive-pack"},
+ want: Env{OriginalCommand: "git-receive-pack"},
+ },
+ }
+
+ for _, tc := range tests {
+ t.Run(tc.desc, func(t *testing.T) {
+ restoreEnv := testhelper.TempEnv(tc.environment)
+ defer restoreEnv()
+
+ require.Equal(t, NewFromEnv(), tc.want)
+ })
+ }
+}
+
+func TestRemoteAddrFromEnv(t *testing.T) {
+ cleanup, err := testhelper.Setenv(SSHConnectionEnv, "127.0.0.1 0")
require.NoError(t, err)
defer cleanup()
- require.Equal(t, LocalAddr(), "127.0.0.1")
+ require.Equal(t, remoteAddrFromEnv(), "127.0.0.1")
}
-func TestEmptyLocalAddr(t *testing.T) {
- require.Equal(t, LocalAddr(), "")
+func TestEmptyRemoteAddrFromEnv(t *testing.T) {
+ require.Equal(t, remoteAddrFromEnv(), "")
}