http_api_test.go 1.8 KB

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