helpers_test.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  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 unixTime := TimeNow(); unixTime == 0 {
  74. sf.t.Fatalf("hassert(): unixTime==0")
  75. }
  76. SleepMs()
  77. }
  78. // Мягкая ТВЁРДАЯ проверка на ок.
  79. func (sf *tester) hassertProdGood1() {
  80. sf.t.Log("hassertProdGood1")
  81. Hassert(true, "tra-la-la")
  82. }
  83. // Твёрдая проверка.
  84. func (sf *tester) hassertProd() {
  85. sf.t.Log("hassertProd")
  86. err := os.Setenv("STAGE", "prod")
  87. if err != nil {
  88. sf.t.Fatalf("hassertProd(): err=%v", err)
  89. }
  90. init_()
  91. defer func() {
  92. if panic_ := recover(); panic_ == nil {
  93. sf.t.Fatalf("assertLocal(): panic==nil")
  94. }
  95. }()
  96. Hassert(false, "tra-la-la")
  97. }
  98. // ТВЁРДАЯ проверка.
  99. func (sf *tester) hassertLocal() {
  100. sf.t.Log("hassertLocal")
  101. defer func() {
  102. if panic_ := recover(); panic_ == nil {
  103. sf.t.Fatalf("assertLocal(): panic==nil")
  104. }
  105. }()
  106. Hassert(false, "tra-la-la")
  107. }
  108. // ========================================================================
  109. // Проверка мягкого ассерта.
  110. func (sf *tester) assert() {
  111. sf.t.Log("assert")
  112. sf.assertLocal()
  113. sf.assertProd()
  114. sf.assertProdGood1()
  115. }
  116. // Мягкая ТВЁРДАЯ проверка на ок.
  117. func (sf *tester) assertProdGood1() {
  118. sf.t.Log("assertProdGood1")
  119. Assert(true, "tra-la-la")
  120. }
  121. // Мягкая проверка (на проде).
  122. func (sf *tester) assertProd() {
  123. sf.t.Log("assertProd")
  124. err := os.Setenv("STAGE", "prod")
  125. if err != nil {
  126. sf.t.Fatalf("assertProd(): err=%v", err)
  127. }
  128. init_()
  129. Assert(false, "tra-la-la")
  130. }
  131. // Мягкая ТВЁРДАЯ локальная проверка (локально).
  132. func (sf *tester) assertLocal() {
  133. sf.t.Log("assertLocal")
  134. defer func() {
  135. if panic_ := recover(); panic_ == nil {
  136. sf.t.Fatalf("assertLocal(): panic==nil")
  137. }
  138. }()
  139. Assert(false, "tra-la-la")
  140. }