Exemplo n.º 1
0
			existingScript2.RunReturns(scriptrunner.RunScriptResult{Tag: "fake-job-2", ScriptPath: "path/to/script2", Error: errors.New("fake-error")})

			results, err := runScriptAction.Run(scriptName, options)

			Expect(err).To(HaveOccurred())
			Expect(err.Error()).Should(ContainSubstring("2 of 2 run-me scripts failed. Failed Jobs:"))
			Expect(err.Error()).Should(ContainSubstring("fake-job-1"))
			Expect(err.Error()).Should(ContainSubstring("fake-job-2"))
			Expect(err.Error()).ShouldNot(ContainSubstring("Successful Jobs"))

			Expect(results).To(Equal(map[string]string{"fake-job-1": "failed", "fake-job-2": "failed"}))
		})

		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() scriptrunner.RunScriptResult {
				time.Sleep(2 * time.Second)
				return scriptrunner.RunScriptResult{Tag: "fake-job-1", ScriptPath: "path/to/script1", Error: errors.New("fake-error")}
			}
			existingScript2.RunReturns(scriptrunner.RunScriptResult{Tag: "fake-job-2", ScriptPath: "path/to/script2", Error: nil})

			results, err := runScriptAction.Run(scriptName, options)

			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."))
			Expect(results).To(Equal(map[string]string{"fake-job-1": "failed", "fake-job-2": "executed"}))
		})

		It("returns one failed status when first script pass and second script fail", func() {
			existingScript1.RunReturns(scriptrunner.RunScriptResult{Tag: "fake-job-1", ScriptPath: "path/to/script1", Error: nil})
			existingScript2.RunReturns(scriptrunner.RunScriptResult{Tag: "fake-job-2", ScriptPath: "path/to/script2", Error: errors.New("fake-error")})

			results, err := runScriptAction.Run(scriptName, options)