http_api_test.go 1.7 KB

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