http_api_test.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package http_api
  2. import (
  3. "net/http"
  4. "os"
  5. "testing"
  6. . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kspec"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev1/mock_env"
  8. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/kctx"
  9. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/kmonolit"
  10. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/kserv_http"
  11. )
  12. type tester struct {
  13. t *testing.T
  14. kCtx IKernelCtx
  15. serv IKernelServerHttp
  16. api *HttpApi
  17. }
  18. func TestPageMonolit(t *testing.T) {
  19. sf := &tester{
  20. t: t,
  21. kCtx: kctx.GetKernelCtx(),
  22. }
  23. sf.new()
  24. sf.getTime()
  25. sf.done()
  26. }
  27. // Возвращает главную страницу монолита.
  28. func (sf *tester) getTime() {
  29. sf.t.Log("get")
  30. fiberApp := sf.serv.Fiber()
  31. req, err := http.NewRequest(http.MethodPost, "/api_time", nil)
  32. if err != nil {
  33. sf.t.Fatalf("get(): in net request, err=%v", err)
  34. }
  35. resp, err := fiberApp.Test(req)
  36. if err != nil {
  37. sf.t.Fatalf("get(): in make POST, err=%v", err)
  38. }
  39. defer func() {
  40. _ = resp.Body.Close()
  41. }()
  42. if resp.StatusCode != http.StatusOK {
  43. sf.t.Fatalf("get(): status(%v)!=200", resp.StatusCode)
  44. }
  45. }
  46. // Освобождает ресурсы.
  47. func (sf *tester) done() {
  48. sf.t.Log("done")
  49. sf.kCtx.Cancel()
  50. sf.kCtx.Wg().Wait()
  51. }
  52. // Создаёт новую страницу монолита.
  53. func (sf *tester) new() {
  54. sf.t.Log("new")
  55. _ = mock_env.MakeEnv()
  56. _ = os.Unsetenv("LOCAL_HTTP_URL")
  57. _ = os.Setenv("LOCAL_HTTP_URL", "http://localhost:18312/")
  58. sf.kCtx.Set("isLocal", true, "testing")
  59. _ = kmonolit.GetMonolit("test_monolit")
  60. sf.serv = kserv_http.GetKernelServHttp()
  61. sf.api = NewHttpApi().Hassert("new()")
  62. if sf.api == nil {
  63. sf.t.Fatalf("new(): page==nil")
  64. }
  65. go sf.serv.Run()
  66. }