package api import ( "io/ioutil" "net/http/httptest" "path/filepath" "testing" "github.com/remogatto/prettytest" "gogs.carducci-dante.gov.it/karmen/core/config" "gogs.carducci-dante.gov.it/karmen/core/renderer" ) var ( server *httptest.Server teacherUrl string ) // Start of setup type testSuite struct { prettytest.Suite } func exp(name string) string { path := filepath.Join("testdata/expectations", name+".html") exp, err := ioutil.ReadFile(path) if err != nil { panic(err) } return string(exp) } func TestRunner(t *testing.T) { prettytest.Run( t, new(testSuite), ) } func (t *testSuite) BeforeAll() { err := config.Load("testdata/config.yaml", config.Config) if err != nil { panic(err) } config.Config.LogLevel = config.LOG_LEVEL_OFF rend := renderer.NewJSONRenderer() renderer.Use(rend) } // func (t *testSuite) TestGetToken() { // tokenUrl := fmt.Sprintf("%s/get-token", server.URL) // resp, err := http.Get(tokenUrl) // defer resp.Body.Close() // t.Nil(err) // _, err = ioutil.ReadAll(resp.Body) // t.Nil(err) // t.Equal(http.StatusOK, resp.StatusCode) // } // func (t *testSuite) TestGetTeacher() { // token, err := getToken() // t.Nil(err) // if !t.Failed() { // teacher := orm.Teacher{} // teacherUrl = fmt.Sprintf("%s/teachers/andrea.fazzi", server.URL) // resp, err := sendAuthenticatedRequest("GET", teacherUrl, token) // t.Nil(err) // if !t.Failed() { // defer resp.Body.Close() // body, err := ioutil.ReadAll(resp.Body) // t.Nil(err) // t.Equal(http.StatusOK, resp.StatusCode) // if !t.Failed() { // err = json.Unmarshal(body, &teacher) // t.Equal("Andrea", teacher.Name) // t.Equal("FAZZI", teacher.Surname) // } // } // } // } // func getToken() ([]byte, error) { // resp, err := http.Get(fmt.Sprintf("%s/get-token", server.URL)) // defer resp.Body.Close() // if err != nil { // return nil, err // } // token, err := ioutil.ReadAll(resp.Body) // if err != nil { // return nil, err // } // return token, nil // } // func sendAuthenticatedRequest(method string, url string, token []byte) (*http.Response, error) { // req, err := http.NewRequest(method, url, nil) // if err != nil { // return nil, err // } // req.Header.Set("Authorization", fmt.Sprintf("bearer %v", string(token))) // resp, err := http.DefaultClient.Do(req) // if err != nil { // return nil, err // } // return resp, nil // }