github.com/onsi/gomega@v1.32.0/internal/gomega_test.go (about) 1 package internal_test 2 3 import ( 4 "runtime" 5 6 . "github.com/onsi/ginkgo/v2" 7 . "github.com/onsi/gomega" 8 "github.com/onsi/gomega/internal" 9 ) 10 11 var _ = Describe("Gomega", func() { 12 It("is mostly tested in assertion_test and async_assertion_test", func() { 13 14 }) 15 Describe("when initialized", func() { 16 var g *internal.Gomega 17 18 BeforeEach(func() { 19 g = internal.NewGomega(internal.DurationBundle{}) 20 Ω(g.Fail).Should(BeNil()) 21 Ω(g.THelper).Should(BeNil()) 22 }) 23 24 It("should be registered as unconfigured", func() { 25 Ω(g.IsConfigured()).Should(BeFalse()) 26 }) 27 28 Context("when configured with a fail handler", func() { 29 It("registers the fail handler and a no-op helper", func() { 30 var capturedMessage string 31 g.ConfigureWithFailHandler(func(message string, skip ...int) { 32 capturedMessage = message 33 }) 34 Ω(g.IsConfigured()).Should(BeTrue()) 35 36 g.Fail("hi bob") 37 Ω(capturedMessage).Should(Equal("hi bob")) 38 Ω(g.THelper).ShouldNot(Panic()) 39 }) 40 }) 41 42 Context("when configured with a T", func() { 43 It("registers a fail handler an the T's helper", func() { 44 fake := &FakeGomegaTestingT{} 45 g.ConfigureWithT(fake) 46 Ω(g.IsConfigured()).Should(BeTrue()) 47 48 g.Fail("hi bob") 49 Ω(fake.CalledHelper).Should(BeTrue()) 50 Ω(fake.CalledFatalf).Should(Equal("\nhi bob")) 51 52 fake.CalledHelper = false 53 g.THelper() 54 Ω(fake.CalledHelper).Should(BeTrue()) 55 }) 56 }) 57 }) 58 59 Describe("Offset", func() { 60 It("computes the correct offsets", func() { 61 doubleNested := func(g Gomega, eventually bool) { 62 func() { 63 if eventually { 64 g.Eventually(true, "10ms", "5ms").WithOffset(2).Should(BeFalse()) 65 } else { 66 g.Expect(true).WithOffset(2).To(BeFalse()) 67 } 68 }() 69 } 70 71 reportedFile, reportedLine := "", 0 72 _, thisFile, anchorLine, _ := runtime.Caller(0) // 0 73 g := NewGomega(func(message string, skip ...int) { // 1 74 _, reportedFile, reportedLine, _ = runtime.Caller(skip[0] + 1) // 2 75 }) // 3 76 g.Expect(true).To(BeFalse()) // *4* 77 Ω(reportedFile).Should(Equal(thisFile)) // 5 78 Ω(reportedLine - anchorLine).Should(Equal(4)) // 6 79 doubleNested(g, false) // *7* 80 Ω(reportedFile).Should(Equal(thisFile)) // 8 81 Ω(reportedLine - anchorLine).Should(Equal(7)) // 9 82 g.Eventually(true, "10ms", "5ms").Should(BeFalse()) // *10* 83 Ω(reportedFile).Should(Equal(thisFile)) // 11 84 Ω(reportedLine - anchorLine).Should(Equal(10)) // 12 85 doubleNested(g, true) // *13* 86 Ω(reportedFile).Should(Equal(thisFile)) // 14 87 Ω(reportedLine - anchorLine).Should(Equal(13)) // 15 88 }) 89 }) 90 })