It("returns two failed statuses when both scripts fail", func() {
				existingScript1.RunReturns(errors.New("fake-error"))
				existingScript2.RunReturns(errors.New("fake-error"))

				err := parallelScript.Run()
				Expect(err).To(HaveOccurred())
				Expect(err.Error()).To(ContainSubstring("2 of 2 run-me scripts failed. Failed Jobs:"))
				Expect(err.Error()).To(ContainSubstring("fake-job-1"))
				Expect(err.Error()).To(ContainSubstring("fake-job-2"))
				Expect(err.Error()).ToNot(ContainSubstring("Successful Jobs"))
			})

			It("returns one failed status when first script fail and second script pass, and when one fails continue waiting for unfinished tasks", func() {
				existingScript1.RunStub = func() error {
					time.Sleep(2 * time.Second)
					return errors.New("fake-error")
				}
				existingScript2.RunReturns(nil)

				err := parallelScript.Run()
				Expect(err).To(HaveOccurred())
				Expect(err.Error()).To(Equal("1 of 2 run-me scripts failed. Failed Jobs: fake-job-1. Successful Jobs: fake-job-2."))
			})

			It("returns one failed status when first script pass and second script fail", func() {
				existingScript1.RunReturns(nil)
				existingScript2.RunReturns(errors.New("fake-error"))

				err := parallelScript.Run()
				Expect(err).To(HaveOccurred())
				Expect(err.Error()).To(Equal("1 of 2 run-me scripts failed. Failed Jobs: fake-job-2. Successful Jobs: fake-job-1."))