summaryrefslogtreecommitdiff
path: root/vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes_test.go')
-rw-r--r--vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes_test.go230
1 files changed, 230 insertions, 0 deletions
diff --git a/vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes_test.go b/vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes_test.go
new file mode 100644
index 000000000..246b329fe
--- /dev/null
+++ b/vendor/github.com/onsi/ginkgo/internal/leafnodes/suite_nodes_test.go
@@ -0,0 +1,230 @@
+package leafnodes_test
+
+import (
+ . "github.com/onsi/ginkgo"
+ . "github.com/onsi/gomega"
+
+ . "github.com/onsi/ginkgo/internal/leafnodes"
+
+ "time"
+
+ "github.com/onsi/ginkgo/internal/codelocation"
+ Failer "github.com/onsi/ginkgo/internal/failer"
+ "github.com/onsi/ginkgo/types"
+)
+
+var _ = Describe("SuiteNodes", func() {
+ Describe("BeforeSuite nodes", func() {
+ var befSuite SuiteNode
+ var failer *Failer.Failer
+ var codeLocation types.CodeLocation
+ var innerCodeLocation types.CodeLocation
+ var outcome bool
+
+ BeforeEach(func() {
+ failer = Failer.New()
+ codeLocation = codelocation.New(0)
+ innerCodeLocation = codelocation.New(0)
+ })
+
+ Context("when the body passes", func() {
+ BeforeEach(func() {
+ befSuite = NewBeforeSuiteNode(func() {
+ time.Sleep(10 * time.Millisecond)
+ }, codeLocation, 0, failer)
+ outcome = befSuite.Run(0, 0, "")
+ })
+
+ It("should return true when run and report as passed", func() {
+ Ω(outcome).Should(BeTrue())
+ Ω(befSuite.Passed()).Should(BeTrue())
+ })
+
+ It("should have the correct summary", func() {
+ summary := befSuite.Summary()
+ Ω(summary.ComponentType).Should(Equal(types.SpecComponentTypeBeforeSuite))
+ Ω(summary.CodeLocation).Should(Equal(codeLocation))
+ Ω(summary.State).Should(Equal(types.SpecStatePassed))
+ Ω(summary.RunTime).Should(BeNumerically(">=", 10*time.Millisecond))
+ Ω(summary.Failure).Should(BeZero())
+ })
+ })
+
+ Context("when the body fails", func() {
+ BeforeEach(func() {
+ befSuite = NewBeforeSuiteNode(func() {
+ failer.Fail("oops", innerCodeLocation)
+ }, codeLocation, 0, failer)
+ outcome = befSuite.Run(0, 0, "")
+ })
+
+ It("should return false when run and report as failed", func() {
+ Ω(outcome).Should(BeFalse())
+ Ω(befSuite.Passed()).Should(BeFalse())
+ })
+
+ It("should have the correct summary", func() {
+ summary := befSuite.Summary()
+ Ω(summary.State).Should(Equal(types.SpecStateFailed))
+ Ω(summary.Failure.Message).Should(Equal("oops"))
+ Ω(summary.Failure.Location).Should(Equal(innerCodeLocation))
+ Ω(summary.Failure.ForwardedPanic).Should(BeEmpty())
+ Ω(summary.Failure.ComponentIndex).Should(Equal(0))
+ Ω(summary.Failure.ComponentType).Should(Equal(types.SpecComponentTypeBeforeSuite))
+ Ω(summary.Failure.ComponentCodeLocation).Should(Equal(codeLocation))
+ })
+ })
+
+ Context("when the body times out", func() {
+ BeforeEach(func() {
+ befSuite = NewBeforeSuiteNode(func(done Done) {
+ }, codeLocation, time.Millisecond, failer)
+ outcome = befSuite.Run(0, 0, "")
+ })
+
+ It("should return false when run and report as failed", func() {
+ Ω(outcome).Should(BeFalse())
+ Ω(befSuite.Passed()).Should(BeFalse())
+ })
+
+ It("should have the correct summary", func() {
+ summary := befSuite.Summary()
+ Ω(summary.State).Should(Equal(types.SpecStateTimedOut))
+ Ω(summary.Failure.ForwardedPanic).Should(BeEmpty())
+ Ω(summary.Failure.ComponentIndex).Should(Equal(0))
+ Ω(summary.Failure.ComponentType).Should(Equal(types.SpecComponentTypeBeforeSuite))
+ Ω(summary.Failure.ComponentCodeLocation).Should(Equal(codeLocation))
+ })
+ })
+
+ Context("when the body panics", func() {
+ BeforeEach(func() {
+ befSuite = NewBeforeSuiteNode(func() {
+ panic("bam")
+ }, codeLocation, 0, failer)
+ outcome = befSuite.Run(0, 0, "")
+ })
+
+ It("should return false when run and report as failed", func() {
+ Ω(outcome).Should(BeFalse())
+ Ω(befSuite.Passed()).Should(BeFalse())
+ })
+
+ It("should have the correct summary", func() {
+ summary := befSuite.Summary()
+ Ω(summary.State).Should(Equal(types.SpecStatePanicked))
+ Ω(summary.Failure.ForwardedPanic).Should(Equal("bam"))
+ Ω(summary.Failure.ComponentIndex).Should(Equal(0))
+ Ω(summary.Failure.ComponentType).Should(Equal(types.SpecComponentTypeBeforeSuite))
+ Ω(summary.Failure.ComponentCodeLocation).Should(Equal(codeLocation))
+ })
+ })
+ })
+
+ Describe("AfterSuite nodes", func() {
+ var aftSuite SuiteNode
+ var failer *Failer.Failer
+ var codeLocation types.CodeLocation
+ var innerCodeLocation types.CodeLocation
+ var outcome bool
+
+ BeforeEach(func() {
+ failer = Failer.New()
+ codeLocation = codelocation.New(0)
+ innerCodeLocation = codelocation.New(0)
+ })
+
+ Context("when the body passes", func() {
+ BeforeEach(func() {
+ aftSuite = NewAfterSuiteNode(func() {
+ time.Sleep(10 * time.Millisecond)
+ }, codeLocation, 0, failer)
+ outcome = aftSuite.Run(0, 0, "")
+ })
+
+ It("should return true when run and report as passed", func() {
+ Ω(outcome).Should(BeTrue())
+ Ω(aftSuite.Passed()).Should(BeTrue())
+ })
+
+ It("should have the correct summary", func() {
+ summary := aftSuite.Summary()
+ Ω(summary.ComponentType).Should(Equal(types.SpecComponentTypeAfterSuite))
+ Ω(summary.CodeLocation).Should(Equal(codeLocation))
+ Ω(summary.State).Should(Equal(types.SpecStatePassed))
+ Ω(summary.RunTime).Should(BeNumerically(">=", 10*time.Millisecond))
+ Ω(summary.Failure).Should(BeZero())
+ })
+ })
+
+ Context("when the body fails", func() {
+ BeforeEach(func() {
+ aftSuite = NewAfterSuiteNode(func() {
+ failer.Fail("oops", innerCodeLocation)
+ }, codeLocation, 0, failer)
+ outcome = aftSuite.Run(0, 0, "")
+ })
+
+ It("should return false when run and report as failed", func() {
+ Ω(outcome).Should(BeFalse())
+ Ω(aftSuite.Passed()).Should(BeFalse())
+ })
+
+ It("should have the correct summary", func() {
+ summary := aftSuite.Summary()
+ Ω(summary.State).Should(Equal(types.SpecStateFailed))
+ Ω(summary.Failure.Message).Should(Equal("oops"))
+ Ω(summary.Failure.Location).Should(Equal(innerCodeLocation))
+ Ω(summary.Failure.ForwardedPanic).Should(BeEmpty())
+ Ω(summary.Failure.ComponentIndex).Should(Equal(0))
+ Ω(summary.Failure.ComponentType).Should(Equal(types.SpecComponentTypeAfterSuite))
+ Ω(summary.Failure.ComponentCodeLocation).Should(Equal(codeLocation))
+ })
+ })
+
+ Context("when the body times out", func() {
+ BeforeEach(func() {
+ aftSuite = NewAfterSuiteNode(func(done Done) {
+ }, codeLocation, time.Millisecond, failer)
+ outcome = aftSuite.Run(0, 0, "")
+ })
+
+ It("should return false when run and report as failed", func() {
+ Ω(outcome).Should(BeFalse())
+ Ω(aftSuite.Passed()).Should(BeFalse())
+ })
+
+ It("should have the correct summary", func() {
+ summary := aftSuite.Summary()
+ Ω(summary.State).Should(Equal(types.SpecStateTimedOut))
+ Ω(summary.Failure.ForwardedPanic).Should(BeEmpty())
+ Ω(summary.Failure.ComponentIndex).Should(Equal(0))
+ Ω(summary.Failure.ComponentType).Should(Equal(types.SpecComponentTypeAfterSuite))
+ Ω(summary.Failure.ComponentCodeLocation).Should(Equal(codeLocation))
+ })
+ })
+
+ Context("when the body panics", func() {
+ BeforeEach(func() {
+ aftSuite = NewAfterSuiteNode(func() {
+ panic("bam")
+ }, codeLocation, 0, failer)
+ outcome = aftSuite.Run(0, 0, "")
+ })
+
+ It("should return false when run and report as failed", func() {
+ Ω(outcome).Should(BeFalse())
+ Ω(aftSuite.Passed()).Should(BeFalse())
+ })
+
+ It("should have the correct summary", func() {
+ summary := aftSuite.Summary()
+ Ω(summary.State).Should(Equal(types.SpecStatePanicked))
+ Ω(summary.Failure.ForwardedPanic).Should(Equal("bam"))
+ Ω(summary.Failure.ComponentIndex).Should(Equal(0))
+ Ω(summary.Failure.ComponentType).Should(Equal(types.SpecComponentTypeAfterSuite))
+ Ω(summary.Failure.ComponentCodeLocation).Should(Equal(codeLocation))
+ })
+ })
+ })
+})