udemy-go-web-1/internal/handlers/handlers_test.go

49 lines
1.1 KiB
Go

package handlers
import (
"net/http"
"net/http/httptest"
"testing"
)
type postData struct {
key string
value string
}
var theTests = []struct {
name string
url string
method string
params []postData
expectedStatusCode int
}{
{"home", "/", "GET", []postData{}, http.StatusOK},
{"about", "/about", "GET", []postData{}, http.StatusOK},
{"gq", "/generals-quarters", "GET", []postData{}, http.StatusOK},
{"ms", "/majors-suite", "GET", []postData{}, http.StatusOK},
{"sa", "/availability", "GET", []postData{}, http.StatusOK},
{"contact", "/contact", "GET", []postData{}, http.StatusOK},
{"ma", "/make-reservation", "GET", []postData{}, http.StatusOK},
}
func TestHandlers(t *testing.T) {
routes := getRoutes()
ts := httptest.NewTLSServer(routes)
defer ts.Close()
for _, e := range theTests {
if e.method == "GET" {
resp, err := ts.Client().Get(ts.URL + e.url)
if err != nil {
t.Log(err)
t.Fatal(err)
}
if resp.StatusCode != e.expectedStatusCode {
t.Errorf("for %s, expected %d but got %d", e.name, e.expectedStatusCode, resp.StatusCode)
}
} else {
}
}
}