helpers_test.go 2.6 KB

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