blob: e3152026fc2fa848d3fadad67fe36ecc3e65a303 [file] [log] [blame]
package installer
import (
"net"
"strings"
"testing"
)
func TestParseNginxProxyConfig(t *testing.T) {
cfg, err := ParseNginxProxyConfig(strings.NewReader(`nginx.conf: |
# user www www;
worker_processes 1;
error_log /dev/null crit;
# pid logs/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 1024;
}
http {
error_log /var/log/nginx/error.log debug;
log_format dodo '$http_host $proxy_host $status';
access_log /var/log/nginx/access.log dodo;
map $http_host $backend {
a A;
b B;
}
server {
listen 9090;
location / {
resolver 1.1.1.1;
resolver 2.2.2.2;
proxy_pass http://$backend;
}
}
}
`))
if err != nil {
t.Fatal(err)
}
if cfg.Port != 9090 {
t.Errorf("invalid port: expected 9090, got %d", cfg.Port)
}
if len(cfg.Resolvers) != 2 ||
!cfg.Resolvers[0].Equal(net.ParseIP("1.1.1.1")) ||
!cfg.Resolvers[1].Equal(net.ParseIP("2.2.2.2")) {
t.Errorf("invalid resolvers: expected [1.1.1.1 2.2.2.2], got %s", cfg.Resolvers)
}
if len(cfg.Proxies) != 2 ||
cfg.Proxies["a"] != "A" ||
cfg.Proxies["b"] != "B" {
t.Errorf("invalid proxies: expected map[a:A, b:B], got %s", cfg.Proxies)
}
}
func TestRenderNginxProxyConfig(t *testing.T) {
cfg := NginxProxyConfig{
Port: 8080,
Resolvers: []net.IP{net.ParseIP("1.1.1.1"), net.ParseIP("2.2.2.2")},
Proxies: map[string]string{
"a": "A",
"b": "B",
},
PreConf: []string{"line1", "line2"},
}
var buf strings.Builder
if err := cfg.Render(&buf); err != nil {
t.Fatal(err)
}
t.Log(buf.String())
}