1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package config
import (
"os"
"testing"
"github.com/prometheus/client_golang/prometheus"
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitlab-shell/client/testserver"
"gitlab.com/gitlab-org/gitlab-shell/internal/testhelper"
)
func TestConfigApplyGlobalState(t *testing.T) {
t.Cleanup(testhelper.TempEnv(map[string]string{"SSL_CERT_DIR": "unmodified"}))
config := &Config{SslCertDir: ""}
config.ApplyGlobalState()
require.Equal(t, "unmodified", os.Getenv("SSL_CERT_DIR"))
config.SslCertDir = "foo"
config.ApplyGlobalState()
require.Equal(t, "foo", os.Getenv("SSL_CERT_DIR"))
}
func TestHttpClient(t *testing.T) {
url := testserver.StartHttpServer(t, []testserver.TestRequestHandler{})
config := &Config{GitlabUrl: url}
client, err := config.HttpClient()
require.NoError(t, err)
_, err = client.Get(url)
require.NoError(t, err)
ms, err := prometheus.DefaultGatherer.Gather()
require.NoError(t, err)
lastMetric := ms[0]
require.Equal(t, lastMetric.GetName(), "gitlab_shell_http_request_seconds")
labels := lastMetric.GetMetric()[0].Label
require.Equal(t, "code", labels[0].GetName())
require.Equal(t, "404", labels[0].GetValue())
require.Equal(t, "method", labels[1].GetName())
require.Equal(t, "get", labels[1].GetValue())
}
|