diff --git a/tests/main.go b/tests/main.go index 7422ff4..7b93d94 100644 --- a/tests/main.go +++ b/tests/main.go @@ -4,7 +4,6 @@ import ( "encoding/json" "fmt" "html/template" - "io/ioutil" "net/http" "net/http/httptest" "os" @@ -71,9 +70,11 @@ func main() { server := httptest.NewServer(router) - exec.Command("chromium", "--headless", "--disable-gpu", server.URL).Run() - // TODO: Fix closing FF - exec.Command("firefox", "-headless", server.URL).Run() + testBrowser("chrome", "--headless", "--disable-gpu", server.URL) + testBrowser("chromium", "--headless", "--disable-gpu", server.URL) + + // Firefox is being annoying, enable if you like + // testBrowser("firefox", "-headless", server.URL) } // Person ... @@ -97,14 +98,12 @@ func getTest(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { } func postTest(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { - body, _ := ioutil.ReadAll(r.Body) - var p []*Person - err := json.Unmarshal(body, &p) + body := json.NewDecoder(r.Body) + err := body.Decode(&p) if err != nil { - fmt.Println(err) - fmt.Println("Person could not be decoded") + fmt.Println(color.RedString(err.Error())) } for k := range p { @@ -116,6 +115,14 @@ func postTest(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { tw.Flush() } +func testBrowser(command string, flags ...string) { + fmt.Println("\nTesting", color.RedString(command)) + err := exec.Command(command, flags...).Run() + if err != nil { + fmt.Println(color.RedString(err.Error())) + } +} + func isEq(p1, p2 Person) { assert(p1.Name, p2.Name, "Name") assert(p1.Surname, p2.Surname, "Surname")