package web_test import ( "net" "net/http" "syscall" "testing" "git.akyoto.dev/go/assert" "git.akyoto.dev/go/web" ) func TestPanic(t *testing.T) { s := web.NewServer() s.Get("/panic", func(ctx web.Context) error { panic("Something unbelievable happened") }) defer func() { r := recover() if r == nil { t.Error("Didn't panic") } }() s.Request("GET", "/panic", nil, nil) } func TestRun(t *testing.T) { s := web.NewServer() go func() { _, err := http.Get("http://127.0.0.1:8080/") assert.Nil(t, err) err = syscall.Kill(syscall.Getpid(), syscall.SIGTERM) assert.Nil(t, err) }() s.Run(":8080") } func TestUnavailablePort(t *testing.T) { listener, err := net.Listen("tcp", ":8080") assert.Nil(t, err) defer listener.Close() s := web.NewServer() s.Run(":8080") }