Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("fake-unmonitor-error")) Expect(value).To(Equal(0)) }) }) }) Context("when current agent spec does not have a job spec template", func() { It("returns 0 and does not run drain script", func() { specService.Spec = boshas.V1ApplySpec{} value, err := act() Expect(err).ToNot(HaveOccurred()) Expect(value).To(Equal(0)) Expect(jobScriptProvider.NewDrainScriptCallCount()).To(Equal(0)) }) }) }) Context("when drain shutdown is requested", func() { act := func() (int, error) { return action.Run(DrainTypeShutdown) } Context("when current agent has a job spec template", func() { var ( currentSpec boshas.V1ApplySpec ) BeforeEach(func() { currentSpec = boshas.V1ApplySpec{} addJobTemplate(¤tSpec.JobSpec, "foo")