github.com/devtron-labs/ci-runner@v0.0.0-20240518055909-b2672f3349d7/executor/stage/ciStages_test.go (about) 1 package stage 2 3 import ( 4 "encoding/json" 5 "github.com/devtron-labs/ci-runner/helper" 6 test_data "github.com/devtron-labs/ci-runner/test-data" 7 "github.com/devtron-labs/ci-runner/util" 8 "os" 9 "testing" 10 ) 11 12 func TestHandleCIEvent(t *testing.T) { 13 14 t.Run("CiTriggerEventWithoutPrePostStep", func(t *testing.T) { 15 16 // Prepare test data 17 ciCdRequest := &helper.CiCdTriggerEvent{} 18 json.Unmarshal([]byte(test_data.CiTriggerEventPayloadWithoutPrePostStep), ciCdRequest) 19 20 exitCode := 0 21 os.RemoveAll(util.WORKINGDIR) 22 // Call the function 23 ciStage := NewCiStage(*helper.NewGitManagerImpl(helper.NewGitCliManager())) 24 ciStage.HandleCIEvent(ciCdRequest, &exitCode) 25 26 // Assert the expected results 27 if exitCode != util.CiStageFailErrorCode { 28 t.Errorf("Expected exitCode to be %d, but got %d", 0, exitCode) 29 } 30 }) 31 t.Run("CiTriggerEventWithPreStep", func(t *testing.T) { 32 33 // Prepare test data 34 ciCdRequest := &helper.CiCdTriggerEvent{} 35 json.Unmarshal([]byte(test_data.CiTriggerEventPayloadWithPreStep), ciCdRequest) 36 37 exitCode := 0 38 os.RemoveAll(util.WORKINGDIR) 39 // Call the function 40 ciStage := NewCiStage(*helper.NewGitManagerImpl(helper.NewGitCliManager())) 41 ciStage.HandleCIEvent(ciCdRequest, &exitCode) 42 43 // Assert the expected results 44 if exitCode != util.CiStageFailErrorCode { 45 t.Errorf("Expected exitCode to be %d, but got %d", 0, exitCode) 46 } 47 }) 48 t.Run("CiTriggerEventWithPrePostStep", func(t *testing.T) { 49 50 // Prepare test data 51 ciCdRequest := &helper.CiCdTriggerEvent{} 52 json.Unmarshal([]byte(test_data.CiTriggerEventPayloadWithPrePostStep), ciCdRequest) 53 54 exitCode := 0 55 os.RemoveAll(util.WORKINGDIR) 56 // Call the function 57 ciStage := NewCiStage(*helper.NewGitManagerImpl(helper.NewGitCliManager())) 58 ciStage.HandleCIEvent(ciCdRequest, &exitCode) 59 60 // Assert the expected results 61 if exitCode != util.CiStageFailErrorCode { 62 t.Errorf("Expected exitCode to be %d, but got %d", 0, exitCode) 63 } 64 }) 65 t.Run("CiTriggerEventWithValidGitHash", func(t *testing.T) { 66 67 // Prepare test data 68 ciCdRequest := &helper.CiCdTriggerEvent{} 69 json.Unmarshal([]byte(test_data.CiTriggerEventWithValidGitHash), ciCdRequest) 70 71 exitCode := 0 72 os.RemoveAll(util.WORKINGDIR) 73 // Call the function 74 ciStage := NewCiStage(*helper.NewGitManagerImpl(helper.NewGitCliManager())) 75 ciStage.HandleCIEvent(ciCdRequest, &exitCode) 76 77 // Assert the expected results 78 if exitCode != util.CiStageFailErrorCode { 79 t.Errorf("Expected exitCode to be %d, but got %d", 0, exitCode) 80 } 81 }) 82 t.Run("CiTriggerEventWithInValidGitHash", func(t *testing.T) { 83 84 // Prepare test data 85 ciCdRequest := &helper.CiCdTriggerEvent{} 86 json.Unmarshal([]byte(test_data.CiTriggerEventWithInValidGitHash), ciCdRequest) 87 88 exitCode := 0 89 os.RemoveAll(util.WORKINGDIR) 90 // Call the function 91 ciStage := NewCiStage(*helper.NewGitManagerImpl(helper.NewGitCliManager())) 92 ciStage.HandleCIEvent(ciCdRequest, &exitCode) 93 94 // Assert the expected results 95 if exitCode != util.CiStageFailErrorCode { 96 t.Errorf("Expected exitCode to be %d, but got %d", 0, exitCode) 97 } 98 }) 99 t.Run("CiTriggerEventWithEmptyGitHash", func(t *testing.T) { 100 101 // Prepare test data 102 ciCdRequest := &helper.CiCdTriggerEvent{} 103 json.Unmarshal([]byte(test_data.CiTriggerEventWithEmptyGitHash), ciCdRequest) 104 105 exitCode := 0 106 os.RemoveAll(util.WORKINGDIR) 107 // Call the function 108 ciStage := NewCiStage(*helper.NewGitManagerImpl(helper.NewGitCliManager())) 109 ciStage.HandleCIEvent(ciCdRequest, &exitCode) 110 111 // Assert the expected results 112 if exitCode != util.CiStageFailErrorCode { 113 t.Errorf("Expected exitCode to be %d, but got %d", 0, exitCode) 114 } 115 }) 116 t.Run("CiTriggerEventWithEmptyGitHashAndSourceValue", func(t *testing.T) { 117 118 // Prepare test data 119 ciCdRequest := &helper.CiCdTriggerEvent{} 120 json.Unmarshal([]byte(test_data.CiTriggerEventWithEmptyGitHashAndSourceValue), ciCdRequest) 121 122 exitCode := 0 123 os.RemoveAll(util.WORKINGDIR) 124 // Call the function 125 ciStage := NewCiStage(*helper.NewGitManagerImpl(helper.NewGitCliManager())) 126 ciStage.HandleCIEvent(ciCdRequest, &exitCode) 127 128 // Assert the expected results 129 if exitCode != util.CiStageFailErrorCode { 130 t.Errorf("Expected exitCode to be %d, but got %d", 0, exitCode) 131 } 132 }) 133 t.Run("CiTriggerEventWithValidGitTag", func(t *testing.T) { 134 135 // Prepare test data 136 ciCdRequest := &helper.CiCdTriggerEvent{} 137 json.Unmarshal([]byte(test_data.CiTriggerEventWithValidGitTag), ciCdRequest) 138 139 exitCode := 0 140 os.RemoveAll(util.WORKINGDIR) 141 // Call the function 142 ciStage := NewCiStage(*helper.NewGitManagerImpl(helper.NewGitCliManager())) 143 ciStage.HandleCIEvent(ciCdRequest, &exitCode) 144 145 // Assert the expected results 146 if exitCode != util.CiStageFailErrorCode { 147 t.Errorf("Expected exitCode to be %d, but got %d", 0, exitCode) 148 } 149 }) 150 t.Run("CiTriggerEventWithInValidGitTag", func(t *testing.T) { 151 152 // Prepare test data 153 ciCdRequest := &helper.CiCdTriggerEvent{} 154 json.Unmarshal([]byte(test_data.CiTriggerEventWithInValidGitTag), ciCdRequest) 155 156 exitCode := 0 157 os.RemoveAll(util.WORKINGDIR) 158 // Call the function 159 ciStage := NewCiStage(*helper.NewGitManagerImpl(helper.NewGitCliManager())) 160 ciStage.HandleCIEvent(ciCdRequest, &exitCode) 161 162 // Assert the expected results 163 if exitCode != util.CiStageFailErrorCode { 164 t.Errorf("Expected exitCode to be %d, but got %d", 0, exitCode) 165 } 166 }) 167 t.Run("CiTriggerEventSourceTypeWebhookPRBased", func(t *testing.T) { 168 169 // Prepare test data 170 ciCdRequest := &helper.CiCdTriggerEvent{} 171 json.Unmarshal([]byte(test_data.CiTriggerEventSourceTypeWebhookPRBased), ciCdRequest) 172 173 exitCode := 0 174 os.RemoveAll(util.WORKINGDIR) 175 // Call the function 176 ciStage := NewCiStage(*helper.NewGitManagerImpl(helper.NewGitCliManager())) 177 ciStage.HandleCIEvent(ciCdRequest, &exitCode) 178 179 // Assert the expected results 180 if exitCode != util.CiStageFailErrorCode { 181 t.Errorf("Expected exitCode to be %d, but got %d", 0, exitCode) 182 } 183 }) 184 185 }