grim/convey

Parents e0fb14d5ee9f
Children 5df127748acb
Make sure we take stage.Enabled into account in stage.ShouldRun
--- a/stages/stages.go Mon Sep 04 20:58:56 2017 -0500
+++ b/stages/stages.go Mon Sep 04 21:04:34 2017 -0500
@@ -146,7 +146,13 @@
return nil
}
+// ShouldRun will return True if a stage should be run based on the passed in
+// error (from the plan) and whether or not the stage is enabled.
func (s *Stage) ShouldRun(err error) bool {
+ if s.Enabled == false {
+ return false
+ }
+
if s.Run == "always" {
return true
}
--- a/stages/stages_test.go Mon Sep 04 20:58:56 2017 -0500
+++ b/stages/stages_test.go Mon Sep 04 21:04:34 2017 -0500
@@ -39,7 +39,7 @@
})
}
-func (s *stagesSuite) TestShouldRunOnFail(t sweet.T) {
+func (s *stagesSuite) TestShouldRunOnFailEnabled(t sweet.T) {
stage := Stage{}
err := errors.New("testing")
@@ -53,7 +53,21 @@
Expect(stage.ShouldRun(err)).To(BeFalse())
}
-func (s *stagesSuite) TestShouldRunOnSuccess(t sweet.T) {
+func (s *stagesSuite) TestShouldRunOnFailDisabled(t sweet.T) {
+ stage := Stage{Enabled: false}
+ err := errors.New("testing")
+
+ stage.Run = "on-failure"
+ Expect(stage.ShouldRun(err)).To(BeFalse())
+
+ stage.Run = "always"
+ Expect(stage.ShouldRun(err)).To(BeFalse())
+
+ stage.Run = "on-success"
+ Expect(stage.ShouldRun(err)).To(BeFalse())
+}
+
+func (s *stagesSuite) TestShouldRunOnSuccessEnabled(t sweet.T) {
stage := Stage{}
stage.Run = "on-success"
@@ -65,3 +79,16 @@
stage.Run = "on-failure"
Expect(stage.ShouldRun(nil)).To(BeFalse())
}
+
+func (s *stagesSuite) TestShouldRunOnSuccessDisabled(t sweet.T) {
+ stage := Stage{Enabled: false}
+
+ stage.Run = "on-success"
+ Expect(stage.ShouldRun(nil)).To(BeFalse())
+
+ stage.Run = "always"
+ Expect(stage.ShouldRun(nil)).To(BeFalse())
+
+ stage.Run = "on-failure"
+ Expect(stage.ShouldRun(nil)).To(BeFalse())
+}