personal-site/controllers/controller_test.go
2021-12-05 20:22:45 -05:00

48 lines
969 B
Go

package controllers
import (
"net/http"
"net/http/httptest"
"os"
"testing"
"goweb/container"
"github.com/PuerkitoBio/goquery"
"github.com/stretchr/testify/assert"
"github.com/labstack/gommon/log"
"github.com/stretchr/testify/require"
)
var (
srv *httptest.Server
c *container.Container
)
func TestMain(m *testing.M) {
// Start a test HTTP server
c = container.NewContainer()
BuildRouter(c)
c.Web.Logger.SetLevel(log.DEBUG)
srv = httptest.NewServer(c.Web)
exitVal := m.Run()
srv.Close()
os.Exit(exitVal)
}
func GetRequest(t *testing.T, route string, routeParams ...interface{}) *http.Response {
cli := http.Client{}
resp, err := cli.Get(srv.URL + c.Web.Reverse(route, routeParams))
require.NoError(t, err)
return resp
}
func GetGoqueryDoc(t *testing.T, resp *http.Response) *goquery.Document {
doc, err := goquery.NewDocumentFromReader(resp.Body)
require.NoError(t, err)
err = resp.Body.Close()
assert.NoError(t, err)
return doc
}