} return fakeScripts[jobName] } }) It("is asynchronous", func() { Expect(action.IsAsynchronous()).To(BeTrue()) }) It("is not persistent", func() { Expect(action.IsPersistent()).To(BeFalse()) }) Describe("Run", func() { var ( parallelScript *fakescript.FakeScript ) BeforeEach(func() { parallelScript = &fakescript.FakeScript{} jobScriptProvider.NewParallelScriptReturns(parallelScript) }) addJobTemplate := func(spec *applyspec.JobSpec, name string) { spec.Template = name spec.JobTemplateSpecs = append(spec.JobTemplateSpecs, applyspec.JobTemplateSpec{Name: name}) } Context("when drain update is requested", func() { newSpec := boshas.V1ApplySpec{ PackageSpecs: map[string]boshas.PackageSpec{
}) Describe("Run", func() { Context("when there are no scripts", func() { BeforeEach(func() { scripts = []boshscript.Script{} }) It("succeeds", func() { err := parallelScript.Run() Expect(err).ToNot(HaveOccurred()) }) }) Context("when script exists", func() { var existingScript *fakescript.FakeScript BeforeEach(func() { existingScript = &fakescript.FakeScript{} existingScript.TagReturns("fake-job-1") existingScript.PathReturns("path/to/script1") existingScript.ExistsReturns(true) scripts = append(scripts, existingScript) }) It("executes the script and succeeds", func() { existingScript.RunReturns(nil) err := parallelScript.Run() Expect(err).ToNot(HaveOccurred())