From 95c225ca0b9c530564976d3bc8eeb0f776de339d Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Wed, 10 Apr 2024 10:59:23 +0100 Subject: [PATCH 1/2] test: :bug: Fix NewChecker test: `when the pinger is missing, it should default to the stub pinger` * The test should pass in a nil pinger for when its missing --- checker_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/checker_test.go b/checker_test.go index b5ff0b1..1ee4af9 100644 --- a/checker_test.go +++ b/checker_test.go @@ -40,7 +40,7 @@ func TestNewChecker(t *testing.T) { name: "when the pinger is missing, it should default to the stub pinger", args: args{ name: "hello", - pinger: &stubPinger{}, + pinger: nil, }, wantName: "hello", wantPingErrMsg: stubPingerErrorMessage, From 4f8e338bfc4e9bb304f2cc4cc74c1eff7d999a09 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Wed, 10 Apr 2024 11:24:08 +0100 Subject: [PATCH 2/2] feat: :sparkles: Checker interface should be able to return the Pinger * Now we can get the Pinger from the Checker --- checker.go | 5 +++++ checker_test.go | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/checker.go b/checker.go index 37642ba..cc4a916 100644 --- a/checker.go +++ b/checker.go @@ -5,6 +5,7 @@ const defaultName = "healthcheck" type Checker interface { Check() error Name() string + Pinger() Pinger } func NewChecker(name string, pinger Pinger) Checker { @@ -36,3 +37,7 @@ func (c *checker) Check() error { func (c *checker) Name() string { return c.name } + +func (c *checker) Pinger() Pinger { + return c.pinger +} diff --git a/checker_test.go b/checker_test.go index 1ee4af9..b6c4998 100644 --- a/checker_test.go +++ b/checker_test.go @@ -5,6 +5,8 @@ import ( "testing" "github.com/music-tribe/errors" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestNewChecker(t *testing.T) { @@ -77,3 +79,23 @@ func TestNewChecker(t *testing.T) { }) } } + +func TestGetPinger(t *testing.T) { + t.Run("We should get back the correct pinger when requested", func(t *testing.T) { + checker := NewChecker("hello", &ShutdownPinger{}) + pinger := checker.Pinger() + require.NotNil(t, pinger) + shutdownPinger, ok := pinger.(*ShutdownPinger) + assert.True(t, ok) + assert.NotNil(t, shutdownPinger) + }) + + t.Run("We should get back the stub pinger when no pinger is set", func(t *testing.T) { + checker := NewChecker("hello", nil) + pinger := checker.Pinger() + require.NotNil(t, pinger) + stubPinger, ok := pinger.(*stubPinger) + assert.True(t, ok) + assert.NotNil(t, stubPinger) + }) +}