52 lines
808 B
Go
52 lines
808 B
Go
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")
|
|
}
|