diff options
author | Lucas Charles <me@lucascharles.me> | 2021-02-17 13:49:46 -0800 |
---|---|---|
committer | Lucas Charles <me@lucascharles.me> | 2021-03-15 13:47:11 -0700 |
commit | d539068dc372e46d10adee89e9b96b59156a2bb6 (patch) | |
tree | 9c37f5ade4a95622b30a7a47befcb46b185b9682 /internal/sshenv/sshenv_test.go | |
parent | e79f115d93a9f00f3e4f8a22ec770fdf4c3e1947 (diff) | |
download | gitlab-shell-d539068dc372e46d10adee89e9b96b59156a2bb6.tar.gz |
chore: Refactor env introspection to rely on command initialization496-move-env-introspection-to-sshenv
Refactors introspection of execution environment to rely on
per-connection state (`gitlab-shell`) or per request (`gitlab-sshd`)
Relates to https://gitlab.com/gitlab-org/gitlab-shell/-/issues/496
Diffstat (limited to 'internal/sshenv/sshenv_test.go')
-rw-r--r-- | internal/sshenv/sshenv_test.go | 43 |
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(), "") } |