helpers_test.go 3.2 KB

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