| gio | f6ad298 | 2024-08-23 17:42:49 +0400 | [diff] [blame] | 1 | package installer |
| 2 | |
| 3 | import ( |
| 4 | "net" |
| 5 | "strings" |
| 6 | "testing" |
| 7 | ) |
| 8 | |
| 9 | func TestParseNginxProxyConfig(t *testing.T) { |
| 10 | cfg, err := ParseNginxProxyConfig(strings.NewReader(`nginx.conf: | |
| 11 | # user www www; |
| 12 | worker_processes 1; |
| 13 | error_log /dev/null crit; |
| 14 | # pid logs/nginx.pid; |
| 15 | worker_rlimit_nofile 8192; |
| 16 | events { |
| 17 | worker_connections 1024; |
| 18 | } |
| 19 | http { |
| 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 | |
| 55 | func 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 | } |