check / check (push) Waiting to run
The Go module moves from backend/ to the root (go.mod, go.sum, .golangci.yml, cmd/, internal/), the page's source to web/, and nginx's two files to configs/. backend/ is gone: its LICENSE and .dockerignore are deleted, and its .gitignore entries, README and scripts are folded into the root ones. script/build builds the server binary after the frontend; script/run and script/clean move up from backend/script/; make test, lint, fmt and fmt-check do what the backend's did. Vite's root is web/ and it still builds into dist/. go.mod ignores node_modules/, whose npm packages can ship .go files. script/bootstrap no longer installs gcc, which only the host Go tests needed. Model: opus-5-5
33 lines
873 B
Go
33 lines
873 B
Go
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)
|
|
}
|
|
})
|
|
}
|
|
}
|