page_monolit_test.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package page_monolit
  2. import (
  3. "net/http"
  4. "os"
  5. "testing"
  6. . "gitp78su.ipnodns.ru/svi/kern/v2/kc/helpers"
  7. "gitp78su.ipnodns.ru/svi/kern/v2/krn/kctx"
  8. "gitp78su.ipnodns.ru/svi/kern/v2/krn/kmonolit"
  9. "gitp78su.ipnodns.ru/svi/kern/v2/krn/kserv_http"
  10. . "gitp78su.ipnodns.ru/svi/kern/v2/krn/ktypes"
  11. "gitp78su.ipnodns.ru/svi/kern/v2/mock/mock_env"
  12. )
  13. type tester struct {
  14. t *testing.T
  15. ctx IKernelCtx
  16. serv IKernelServerHttp
  17. page *PageMonolit
  18. }
  19. func TestPageMonolit(t *testing.T) {
  20. sf := &tester{
  21. t: t,
  22. ctx: kctx.GetKernelCtx(),
  23. }
  24. sf.new()
  25. sf.getMonolit()
  26. sf.postMonolitState()
  27. sf.postMonolitCtx()
  28. sf.postMonolitLog()
  29. sf.done()
  30. }
  31. // Возвращает состояние лога монолита
  32. func (sf *tester) postMonolitLog() {
  33. sf.t.Log("postMonolitCtx")
  34. mon := sf.ctx.Get("monolit").Val().(IKernelMonolit)
  35. log := mon.Log()
  36. log.Debug("test msg")
  37. fiberApp := sf.serv.Fiber()
  38. req, err := http.NewRequest("POST", "/monolit_log", nil)
  39. if err != nil {
  40. sf.t.Fatalf("postMonolitLog(): in net request, err=%v", err)
  41. }
  42. resp, err := fiberApp.Test(req)
  43. if err != nil {
  44. sf.t.Fatalf("postMonolitLog(): in make POST, err=%v", err)
  45. }
  46. if resp.StatusCode != 200 {
  47. sf.t.Fatalf("postMonolitLog(): status(%v)!=200", resp.StatusCode)
  48. }
  49. }
  50. // Возвращает состояние контекста монолита
  51. func (sf *tester) postMonolitCtx() {
  52. sf.t.Log("postMonolitCtx")
  53. fiberApp := sf.serv.Fiber()
  54. req, err := http.NewRequest("POST", "/monolit_ctx", nil)
  55. if err != nil {
  56. sf.t.Fatalf("postMonolitCtx(): in net request, err=%v", err)
  57. }
  58. resp, err := fiberApp.Test(req)
  59. if err != nil {
  60. sf.t.Fatalf("postMonolitCtx(): in make POST, err=%v", err)
  61. }
  62. if resp.StatusCode != 200 {
  63. sf.t.Fatalf("postMonolitCtx(): status(%v)!=200", resp.StatusCode)
  64. }
  65. }
  66. // Возвращает состояние монолита
  67. func (sf *tester) postMonolitState() {
  68. sf.t.Log("postMonolitState")
  69. fiberApp := sf.serv.Fiber()
  70. req, err := http.NewRequest("POST", "/monolit_state", nil)
  71. if err != nil {
  72. sf.t.Fatalf("postMonolitState(): in net request, err=%v", err)
  73. }
  74. resp, err := fiberApp.Test(req)
  75. if err != nil {
  76. sf.t.Fatalf("postMonolitState(): in make POST, err=%v", err)
  77. }
  78. if resp.StatusCode != 200 {
  79. sf.t.Fatalf("postMonolitState(): status(%v)!=200", resp.StatusCode)
  80. }
  81. }
  82. // Возвращает главную страницу монолита
  83. func (sf *tester) getMonolit() {
  84. sf.t.Log("getMonolit")
  85. fiberApp := sf.serv.Fiber()
  86. req, err := http.NewRequest("GET", "/monolit", nil)
  87. if err != nil {
  88. sf.t.Fatalf("getMonolit(): in net request, err=%v", err)
  89. }
  90. resp, err := fiberApp.Test(req)
  91. if err != nil {
  92. sf.t.Fatalf("getMonolit(): in make GET, err=%v", err)
  93. }
  94. if resp.StatusCode != 200 {
  95. sf.t.Fatalf("getMonolit(): status(%v)!=200", resp.StatusCode)
  96. }
  97. }
  98. // Освобождает ресурсы
  99. func (sf *tester) done() {
  100. sf.t.Log("done")
  101. sf.page.clickMonolit()
  102. sf.ctx.Cancel()
  103. sf.ctx.Wg().Wait()
  104. }
  105. // Создаёт новую страницу монолита
  106. func (sf *tester) new() {
  107. sf.t.Log("new")
  108. _ = mock_env.MakeEnv()
  109. _ = os.Unsetenv("LOCAL_HTTP_URL")
  110. os.Setenv("LOCAL_HTTP_URL", "http://localhost:18310/")
  111. sf.ctx.Set("isLocal", true, "testing")
  112. for {
  113. SleepMs()
  114. if sf.ctx.Get("isLocal") != nil {
  115. break
  116. }
  117. }
  118. _ = kmonolit.GetMonolit("test_monolit")
  119. sf.serv = kserv_http.GetKernelServHttp()
  120. sf.page = GetPageMonolit()
  121. if sf.page == nil {
  122. sf.t.Fatalf("new(): page==nil")
  123. }
  124. _ = GetPageMonolit()
  125. go sf.serv.Run()
  126. }