2018-01-29 19:44:18 +00:00
|
|
|
package matchers_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
. "github.com/onsi/ginkgo"
|
|
|
|
. "github.com/onsi/gomega"
|
|
|
|
. "github.com/onsi/gomega/matchers"
|
|
|
|
)
|
|
|
|
|
|
|
|
var _ = Describe("Panic", func() {
|
|
|
|
Context("when passed something that's not a function that takes zero arguments and returns nothing", func() {
|
|
|
|
It("should error", func() {
|
|
|
|
success, err := (&PanicMatcher{}).Match("foo")
|
2018-09-05 15:36:14 +00:00
|
|
|
Expect(success).Should(BeFalse())
|
|
|
|
Expect(err).Should(HaveOccurred())
|
2018-01-29 19:44:18 +00:00
|
|
|
|
|
|
|
success, err = (&PanicMatcher{}).Match(nil)
|
2018-09-05 15:36:14 +00:00
|
|
|
Expect(success).Should(BeFalse())
|
|
|
|
Expect(err).Should(HaveOccurred())
|
2018-01-29 19:44:18 +00:00
|
|
|
|
|
|
|
success, err = (&PanicMatcher{}).Match(func(foo string) {})
|
2018-09-05 15:36:14 +00:00
|
|
|
Expect(success).Should(BeFalse())
|
|
|
|
Expect(err).Should(HaveOccurred())
|
2018-01-29 19:44:18 +00:00
|
|
|
|
|
|
|
success, err = (&PanicMatcher{}).Match(func() string { return "bar" })
|
2018-09-05 15:36:14 +00:00
|
|
|
Expect(success).Should(BeFalse())
|
|
|
|
Expect(err).Should(HaveOccurred())
|
2018-01-29 19:44:18 +00:00
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
Context("when passed a function of the correct type", func() {
|
|
|
|
It("should call the function and pass if the function panics", func() {
|
2018-09-05 15:36:14 +00:00
|
|
|
Expect(func() { panic("ack!") }).Should(Panic())
|
|
|
|
Expect(func() {}).ShouldNot(Panic())
|
2018-01-29 19:44:18 +00:00
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
Context("when assertion fails", func() {
|
|
|
|
It("should print the object passed to Panic", func() {
|
|
|
|
failuresMessages := InterceptGomegaFailures(func() {
|
2018-09-05 15:36:14 +00:00
|
|
|
Expect(func() { panic("ack!") }).ShouldNot(Panic())
|
2018-01-29 19:44:18 +00:00
|
|
|
})
|
2018-09-05 15:36:14 +00:00
|
|
|
Expect(failuresMessages).Should(ConsistOf(MatchRegexp("not to panic, but panicked with\\s*<string>: ack!")))
|
2018-01-29 19:44:18 +00:00
|
|
|
})
|
|
|
|
})
|
|
|
|
})
|