helpers_test.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package helpers
  2. import (
  3. "os"
  4. "testing"
  5. "time"
  6. )
  7. const (
  8. baseUrl = "http://127.0.0.1:18410/"
  9. pathStore = "/store/store_helpers"
  10. )
  11. type tester struct {
  12. t *testing.T
  13. }
  14. func TestHelpers(t *testing.T) {
  15. sf := &tester{
  16. t: t,
  17. }
  18. _ = os.Unsetenv("LOCAL_STORE_PATH")
  19. _ = os.Setenv("LOCAL_STORE_PATH", pathStore)
  20. _ = os.Unsetenv("LOCAL_HTTP_URL")
  21. _ = os.Setenv("LOCAL_HTTP_URL", baseUrl)
  22. fnClear := func() {
  23. _ = os.RemoveAll(pathStore)
  24. }
  25. fnClear()
  26. defer fnClear()
  27. sf.assert()
  28. sf.hassert()
  29. sf.init_()
  30. }
  31. // Неизвестное значение STAGE.
  32. func (sf *tester) init_() {
  33. sf.t.Log("init_")
  34. sf.initBad1()
  35. sf.initGood1()
  36. sf.initGood2()
  37. sf.initGood3()
  38. }
  39. func (sf *tester) initGood3() {
  40. sf.t.Log("initGood3")
  41. _ = os.Unsetenv("STAGE")
  42. _ = os.Setenv("STAGE", "")
  43. init_()
  44. }
  45. func (sf *tester) initGood2() {
  46. sf.t.Log("initGood2")
  47. _ = os.Unsetenv("STAGE")
  48. _ = os.Setenv("STAGE", "prod")
  49. init_()
  50. }
  51. func (sf *tester) initGood1() {
  52. sf.t.Log("initGood1")
  53. _ = os.Unsetenv("STAGE")
  54. _ = os.Setenv("STAGE", "local")
  55. init_()
  56. }
  57. func (sf *tester) initBad1() {
  58. sf.t.Log("initBad1")
  59. defer func() {
  60. if panic_ := recover(); panic_ == nil {
  61. sf.t.Fatalf("initBad1(): panic==nil")
  62. }
  63. }()
  64. _ = os.Unsetenv("STAGE")
  65. _ = os.Setenv("STAGE", "tra-lala")
  66. init_()
  67. }
  68. // Проверка мягкого ассерта.
  69. func (sf *tester) hassert() {
  70. sf.t.Log("assert")
  71. sf.hassertLocal()
  72. sf.hassertProd()
  73. sf.hassertProdGood1()
  74. if unixTime := TimeNow(); unixTime == 0 {
  75. sf.t.Fatalf("hassert(): unixTime==0")
  76. }
  77. time.Sleep(time.Millisecond * 1)
  78. }
  79. // Мягкая ТВЁРДАЯ проверка на ок.
  80. func (sf *tester) hassertProdGood1() {
  81. sf.t.Log("hassertProdGood1")
  82. Hassert(true, "tra-la-la")
  83. }
  84. // Твёрдая проверка.
  85. func (sf *tester) hassertProd() {
  86. sf.t.Log("hassertProd")
  87. err := os.Setenv("STAGE", "prod")
  88. if err != nil {
  89. sf.t.Fatalf("hassertProd(): err=%v", err)
  90. }
  91. init_()
  92. defer func() {
  93. if panic_ := recover(); panic_ == nil {
  94. sf.t.Fatalf("assertLocal(): panic==nil")
  95. }
  96. }()
  97. Hassert(false, "tra-la-la")
  98. }
  99. // ТВЁРДАЯ проверка.
  100. func (sf *tester) hassertLocal() {
  101. sf.t.Log("hassertLocal")
  102. defer func() {
  103. if panic_ := recover(); panic_ == nil {
  104. sf.t.Fatalf("assertLocal(): panic==nil")
  105. }
  106. }()
  107. Hassert(false, "tra-la-la")
  108. }
  109. // ========================================================================
  110. // Проверка мягкого ассерта.
  111. func (sf *tester) assert() {
  112. sf.t.Log("assert")
  113. sf.assertLocal()
  114. sf.assertProd()
  115. sf.assertProdGood1()
  116. }
  117. // Мягкая ТВЁРДАЯ проверка на ок.
  118. func (sf *tester) assertProdGood1() {
  119. sf.t.Log("assertProdGood1")
  120. Assert(true, "tra-la-la")
  121. }
  122. // Мягкая проверка (на проде).
  123. func (sf *tester) assertProd() {
  124. sf.t.Log("assertProd")
  125. err := os.Setenv("STAGE", "prod")
  126. if err != nil {
  127. sf.t.Fatalf("assertProd(): err=%v", err)
  128. }
  129. init_()
  130. Assert(false, "tra-la-la")
  131. }
  132. // Мягкая ТВЁРДАЯ локальная проверка (локально).
  133. func (sf *tester) assertLocal() {
  134. sf.t.Log("assertLocal")
  135. defer func() {
  136. if panic_ := recover(); panic_ == nil {
  137. sf.t.Fatalf("assertLocal(): panic==nil")
  138. }
  139. }()
  140. Assert(false, "tra-la-la")
  141. }