summaryrefslogtreecommitdiff
path: root/vendor/github.com/onsi/ginkgo/integration/suite_command_test.go
blob: 4aec1bc4151125806324a11851253efba2475bd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package integration_test

import (
	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
	"github.com/onsi/gomega/gexec"
)

var _ = Describe("Suite Command Specs", func() {
	var pathToTest string

	BeforeEach(func() {
		pathToTest = tmpPath("suite_command")
		copyIn(fixturePath("suite_command_tests"), pathToTest, false)
	})

	It("Runs command after suite echoing out suite data, properly reporting suite name and passing status in successful command output", func() {
		command := "-afterSuiteHook=echo THIS IS A (ginkgo-suite-passed) TEST OF THE (ginkgo-suite-name) SYSTEM, THIS IS ONLY A TEST"
		expected := "THIS IS A [PASS] TEST OF THE suite_command SYSTEM, THIS IS ONLY A TEST"
		session := startGinkgo(pathToTest, command)
		Eventually(session).Should(gexec.Exit(0))
		output := string(session.Out.Contents())

		Ω(output).Should(ContainSubstring("1 Passed"))
		Ω(output).Should(ContainSubstring("0 Failed"))
		Ω(output).Should(ContainSubstring("1 Pending"))
		Ω(output).Should(ContainSubstring("0 Skipped"))
		Ω(output).Should(ContainSubstring("Test Suite Passed"))
		Ω(output).Should(ContainSubstring("Post-suite command succeeded:"))
		Ω(output).Should(ContainSubstring(expected))
	})

	It("Runs command after suite reporting that command failed", func() {
		command := "-afterSuiteHook=exit 1"
		session := startGinkgo(pathToTest, command)
		Eventually(session).Should(gexec.Exit(0))
		output := string(session.Out.Contents())

		Ω(output).Should(ContainSubstring("1 Passed"))
		Ω(output).Should(ContainSubstring("0 Failed"))
		Ω(output).Should(ContainSubstring("1 Pending"))
		Ω(output).Should(ContainSubstring("0 Skipped"))
		Ω(output).Should(ContainSubstring("Test Suite Passed"))
		Ω(output).Should(ContainSubstring("Post-suite command failed:"))
	})

	It("Runs command after suite echoing out suite data, properly reporting suite name and failing status in successful command output", func() {
		command := "-afterSuiteHook=echo THIS IS A (ginkgo-suite-passed) TEST OF THE (ginkgo-suite-name) SYSTEM, THIS IS ONLY A TEST"
		expected := "THIS IS A [FAIL] TEST OF THE suite_command SYSTEM, THIS IS ONLY A TEST"
		session := startGinkgo(pathToTest, "-failOnPending=true", command)
		Eventually(session).Should(gexec.Exit(1))
		output := string(session.Out.Contents())

		Ω(output).Should(ContainSubstring("1 Passed"))
		Ω(output).Should(ContainSubstring("0 Failed"))
		Ω(output).Should(ContainSubstring("1 Pending"))
		Ω(output).Should(ContainSubstring("0 Skipped"))
		Ω(output).Should(ContainSubstring("Test Suite Failed"))
		Ω(output).Should(ContainSubstring("Post-suite command succeeded:"))
		Ω(output).Should(ContainSubstring(expected))
	})

})