blob: e3152026fc2fa848d3fadad67fe36ecc3e65a303 [file] [log] [blame]
giof6ad2982024-08-23 17:42:49 +04001package installer
2
3import (
4 "net"
5 "strings"
6 "testing"
7)
8
9func TestParseNginxProxyConfig(t *testing.T) {
10 cfg, err := ParseNginxProxyConfig(strings.NewReader(`nginx.conf: |
11# user www www;
12worker_processes 1;
13error_log /dev/null crit;
14# pid logs/nginx.pid;
15worker_rlimit_nofile 8192;
16events {
17 worker_connections 1024;
18}
19http {
20 error_log /var/log/nginx/error.log debug;
21 log_format dodo '$http_host $proxy_host $status';
22 access_log /var/log/nginx/access.log dodo;
23 map $http_host $backend {
24 a A;
25 b B;
26 }
27 server {
28 listen 9090;
29 location / {
30 resolver 1.1.1.1;
31 resolver 2.2.2.2;
32 proxy_pass http://$backend;
33 }
34 }
35}
36`))
37 if err != nil {
38 t.Fatal(err)
39 }
40 if cfg.Port != 9090 {
41 t.Errorf("invalid port: expected 9090, got %d", cfg.Port)
42 }
43 if len(cfg.Resolvers) != 2 ||
44 !cfg.Resolvers[0].Equal(net.ParseIP("1.1.1.1")) ||
45 !cfg.Resolvers[1].Equal(net.ParseIP("2.2.2.2")) {
46 t.Errorf("invalid resolvers: expected [1.1.1.1 2.2.2.2], got %s", cfg.Resolvers)
47 }
48 if len(cfg.Proxies) != 2 ||
49 cfg.Proxies["a"] != "A" ||
50 cfg.Proxies["b"] != "B" {
51 t.Errorf("invalid proxies: expected map[a:A, b:B], got %s", cfg.Proxies)
52 }
53}
54
55func TestRenderNginxProxyConfig(t *testing.T) {
56 cfg := NginxProxyConfig{
57 Port: 8080,
58 Resolvers: []net.IP{net.ParseIP("1.1.1.1"), net.ParseIP("2.2.2.2")},
59 Proxies: map[string]string{
60 "a": "A",
61 "b": "B",
62 },
63 PreConf: []string{"line1", "line2"},
64 }
65 var buf strings.Builder
66 if err := cfg.Render(&buf); err != nil {
67 t.Fatal(err)
68 }
69 t.Log(buf.String())
70}