package server_test import "testing" // TestListenAddress checks that the server listens on BIND_ADDRESS // and PORT, and on port 8080 on every interface when neither is set. // The container image sets both, to keep the backend on loopback // behind nginx. func TestListenAddress(t *testing.T) { tests := []struct { bindAddress string port string want string }{ {bindAddress: "", port: "", want: ":8080"}, {bindAddress: "127.0.0.1", port: "8081", want: "127.0.0.1:8081"}, {bindAddress: "::1", port: "8081", want: "[::1]:8081"}, } for _, tt := range tests { t.Run(tt.want, func(t *testing.T) { // t.Setenv rules out t.Parallel. t.Setenv("BIND_ADDRESS", tt.bindAddress) t.Setenv("PORT", tt.port) got := newServer(t).ListenAddr() if got != tt.want { t.Errorf("listen address = %q, want %q", got, tt.want) } }) } }