package main import ( "os" "slices" "testing" "amadan.net/rastrillo/rastrillo/budget" ) func TestMain(m *testing.M) { os.Exit(budget.Main(m)) } func TestListenAsAddr(t *testing.T) { t.Parallel() got := listenAsAddr([]string{"app", "--listen", "127.0.0.1:1", "-listen=127.0.0.1:2", "--db", "x.db", "--socket", "s"}) want := []string{"app", "--addr", "127.0.0.1:1", "--addr=127.0.0.1:2", "--db", "x.db", "--socket", "s"} if !slices.Equal(got, want) { t.Errorf("got %q, want %q", got, want) } } func TestOrigin(t *testing.T) { t.Setenv("CARLOS_HOST", "") if got := origin("127.0.0.1:9000"); got != "http://127.0.0.1:9000" { t.Errorf("local origin %q", got) } t.Setenv("CARLOS_HOST", "todo-go-rastrillo.bfj.oncarlos.com") if got := origin(""); got != "https://todo-go-rastrillo.bfj.oncarlos.com" { t.Errorf("carloku origin %q", got) } } func TestLoopbackOnly(t *testing.T) { t.Parallel() for addr, ok := range map[string]bool{ "127.0.0.1:8080": true, "0.0.0.0:8080": false, ":8080": false, "[::]:8080": false, "localhost:8080": false, "10.0.0.5:8080": false, "127.0.0.1": false, } { if err := loopbackOnly(addr); (err == nil) != ok { t.Errorf("loopbackOnly(%q) = %v, want ok=%v", addr, err, ok) } } }