From 81926db63f4c068d1df12e4ef475c70d0f61e541 Mon Sep 17 00:00:00 2001 From: maxcleme Date: Wed, 23 Aug 2023 16:34:29 +0200 Subject: [PATCH] feat: add MustPassRepeatedly internal integration test for config override Signed-off-by: maxcleme --- .../config_must_pass_repeatedly_test.go | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 internal/internal_integration/config_must_pass_repeatedly_test.go diff --git a/internal/internal_integration/config_must_pass_repeatedly_test.go b/internal/internal_integration/config_must_pass_repeatedly_test.go new file mode 100644 index 000000000..d799b7b8b --- /dev/null +++ b/internal/internal_integration/config_must_pass_repeatedly_test.go @@ -0,0 +1,57 @@ +package internal_integration_test + +import ( + "fmt" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/ginkgo/v2/internal/test_helpers" + . "github.com/onsi/gomega" +) + +var _ = Describe("when config.MustPassRepeatedly is greater than 1", func() { + var success bool + JustBeforeEach(func() { + var counterB int + success, _ = RunFixture("flakey success", func() { + It("A", func() {}) + It("B", func() { + counterB += 1 + if counterB == 8 { + F(fmt.Sprintf("C - %d", counterB)) + } + }) + }) + }) + + Context("when a test passes", func() { + BeforeEach(func() { + conf.MustPassRepeatedly = 5 + }) + + It("reports that the suite passed", func() { + Ω(success).Should(BeTrue()) + Ω(reporter.End).Should(BeASuiteSummary(NSpecs(2), NFailed(0), NPassed(2))) + }) + + It("reports that the test passed with the correct number of attempts", func() { + Ω(reporter.Did.Find("A")).Should(HavePassed(NumAttempts(5))) + Ω(reporter.Did.Find("B")).Should(HavePassed(NumAttempts(5))) + }) + }) + + Context("when the test fails", func() { + BeforeEach(func() { + conf.MustPassRepeatedly = 10 + }) + + It("reports that the suite failed", func() { + Ω(success).Should(BeFalse()) + Ω(reporter.End).Should(BeASuiteSummary(NSpecs(2), NFailed(1), NPassed(1))) + }) + + It("reports that the test failed with the correct number of attempts", func() { + Ω(reporter.Did.Find("A")).Should(HavePassed(NumAttempts(10))) + Ω(reporter.Did.Find("B")).Should(HaveFailed(NumAttempts(8))) + }) + }) +})