api_test.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. package api
  2. import (
  3. "io/ioutil"
  4. "net/http/httptest"
  5. "path/filepath"
  6. "testing"
  7. "github.com/remogatto/prettytest"
  8. "gogs.carducci-dante.gov.it/karmen/core/config"
  9. "gogs.carducci-dante.gov.it/karmen/core/renderer"
  10. )
  11. var (
  12. server *httptest.Server
  13. teacherUrl string
  14. )
  15. // Start of setup
  16. type testSuite struct {
  17. prettytest.Suite
  18. }
  19. func exp(name string) string {
  20. path := filepath.Join("testdata/expectations", name+".html")
  21. exp, err := ioutil.ReadFile(path)
  22. if err != nil {
  23. panic(err)
  24. }
  25. return string(exp)
  26. }
  27. func TestRunner(t *testing.T) {
  28. prettytest.Run(
  29. t,
  30. new(testSuite),
  31. )
  32. }
  33. func (t *testSuite) BeforeAll() {
  34. err := config.Load("testdata/config.yaml", config.Config)
  35. if err != nil {
  36. panic(err)
  37. }
  38. config.Config.LogLevel = config.LOG_LEVEL_OFF
  39. rend := renderer.NewJSONRenderer()
  40. renderer.Use(rend)
  41. }
  42. // func (t *testSuite) TestGetToken() {
  43. // tokenUrl := fmt.Sprintf("%s/get-token", server.URL)
  44. // resp, err := http.Get(tokenUrl)
  45. // defer resp.Body.Close()
  46. // t.Nil(err)
  47. // _, err = ioutil.ReadAll(resp.Body)
  48. // t.Nil(err)
  49. // t.Equal(http.StatusOK, resp.StatusCode)
  50. // }
  51. // func (t *testSuite) TestGetTeacher() {
  52. // token, err := getToken()
  53. // t.Nil(err)
  54. // if !t.Failed() {
  55. // teacher := orm.Teacher{}
  56. // teacherUrl = fmt.Sprintf("%s/teachers/andrea.fazzi", server.URL)
  57. // resp, err := sendAuthenticatedRequest("GET", teacherUrl, token)
  58. // t.Nil(err)
  59. // if !t.Failed() {
  60. // defer resp.Body.Close()
  61. // body, err := ioutil.ReadAll(resp.Body)
  62. // t.Nil(err)
  63. // t.Equal(http.StatusOK, resp.StatusCode)
  64. // if !t.Failed() {
  65. // err = json.Unmarshal(body, &teacher)
  66. // t.Equal("Andrea", teacher.Name)
  67. // t.Equal("FAZZI", teacher.Surname)
  68. // }
  69. // }
  70. // }
  71. // }
  72. // func getToken() ([]byte, error) {
  73. // resp, err := http.Get(fmt.Sprintf("%s/get-token", server.URL))
  74. // defer resp.Body.Close()
  75. // if err != nil {
  76. // return nil, err
  77. // }
  78. // token, err := ioutil.ReadAll(resp.Body)
  79. // if err != nil {
  80. // return nil, err
  81. // }
  82. // return token, nil
  83. // }
  84. // func sendAuthenticatedRequest(method string, url string, token []byte) (*http.Response, error) {
  85. // req, err := http.NewRequest(method, url, nil)
  86. // if err != nil {
  87. // return nil, err
  88. // }
  89. // req.Header.Set("Authorization", fmt.Sprintf("bearer %v", string(token)))
  90. // resp, err := http.DefaultClient.Do(req)
  91. // if err != nil {
  92. // return nil, err
  93. // }
  94. // return resp, nil
  95. // }