From ddf5ebbafd001425bad3c2f83159cdd853900c88 Mon Sep 17 00:00:00 2001 From: Jan Galek Date: Sat, 21 Dec 2024 12:56:29 +0100 Subject: [PATCH] [Update] extensions, added getters and setters --- diago.go | 10 ---------- extension.go | 14 ++++++++++++++ extensions/diagoLatencyExtension.go | 14 +++++++++++++- tests/diagoLatencyExtension_test.go | 14 ++++++++++++-- tests/diagoMiddleware_test.go | 14 ++++++++++++++ tests/diago_test.go | 26 +++++++++++++++++++++----- 6 files changed, 74 insertions(+), 18 deletions(-) diff --git a/diago.go b/diago.go index a7e4222..a256ce2 100644 --- a/diago.go +++ b/diago.go @@ -1,15 +1,5 @@ package diago -import "github.com/gin-gonic/gin" - -type Extension interface { - GetPanelHtml(c *gin.Context) string - GetHtml(c *gin.Context) string - GetJSHtml(c *gin.Context) string - BeforeNext(c *gin.Context) - AfterNext(c *gin.Context) -} - type Diago struct { Extensions []Extension diff --git a/extension.go b/extension.go index 31784dc..c0c179d 100644 --- a/extension.go +++ b/extension.go @@ -1 +1,15 @@ package diago + +import "github.com/gin-gonic/gin" + +type Extension interface { + GetPanelHtml(c *gin.Context) string + GetHtml(c *gin.Context) string + GetJSHtml(c *gin.Context) string + BeforeNext(c *gin.Context) + AfterNext(c *gin.Context) + SetTemplateProvider(provider TemplateProvider) + GetTemplateProvider() TemplateProvider + SetPanelGenerator(generator PanelGenerator) + GetPanelGenerator() PanelGenerator +} diff --git a/extensions/diagoLatencyExtension.go b/extensions/diagoLatencyExtension.go index 8d2306d..92aa1e8 100644 --- a/extensions/diagoLatencyExtension.go +++ b/extensions/diagoLatencyExtension.go @@ -22,7 +22,7 @@ type DiagoLatencyExtension struct { type DefaultLatencyTemplateProvider struct{} -func (p DefaultLatencyTemplateProvider) GetTemplate() string { +func (p *DefaultLatencyTemplateProvider) GetTemplate() string { return diago.GetDiagoLatencyPanelTemplate() } @@ -43,6 +43,18 @@ func (e *DiagoLatencyExtension) SetTemplateProvider(provider diago.TemplateProvi e.TemplateProvider = provider } +func (e *DiagoLatencyExtension) GetTemplateProvider() diago.TemplateProvider { + return e.TemplateProvider +} + +func (e *DiagoLatencyExtension) SetPanelGenerator(generator diago.PanelGenerator) { + e.PanelGenerator = generator +} + +func (e *DiagoLatencyExtension) GetPanelGenerator() diago.PanelGenerator { + return e.PanelGenerator +} + func (e *DiagoLatencyExtension) GetLatency() time.Duration { return e.latency } diff --git a/tests/diagoLatencyExtension_test.go b/tests/diagoLatencyExtension_test.go index f80d015..f5b5c76 100644 --- a/tests/diagoLatencyExtension_test.go +++ b/tests/diagoLatencyExtension_test.go @@ -159,14 +159,24 @@ func TestGenerateDiagoPanelHTML_TemplateExecuteError(t *testing.T) { assert.Empty(t, result, "Expected empty result when execution fails") } -func TestDiagoLatencyExtension_SetTemplateProvider(t *testing.T) { +func TestDiagoLatencyExtension_TemplateProvider(t *testing.T) { latencyExtension := extensions.NewDiagoLatencyExtension() mockProvider := &mockTemplateProviderWithParseError{} latencyExtension.SetTemplateProvider(mockProvider) - assert.Equal(t, mockProvider, latencyExtension.TemplateProvider, "TemplateProvider should be set correctly") + assert.Equal(t, mockProvider, latencyExtension.GetTemplateProvider(), "TemplateProvider should be set correctly") +} + +func TestDiagoLatencyExtension_PanelGenerator(t *testing.T) { + latencyExtension := extensions.NewDiagoLatencyExtension() + + mockProvider := &MockPanelGenerator{} + + latencyExtension.SetPanelGenerator(mockProvider) + + assert.Equal(t, mockProvider, latencyExtension.GetPanelGenerator(), "PanelGenerator should be set correctly") } type logWriter struct { diff --git a/tests/diagoMiddleware_test.go b/tests/diagoMiddleware_test.go index f0376b2..6639c11 100644 --- a/tests/diagoMiddleware_test.go +++ b/tests/diagoMiddleware_test.go @@ -3,6 +3,7 @@ package tests import ( "github.com/gin-gonic/gin" "github.com/gouef/diago" + "github.com/gouef/diago/extensions" "github.com/gouef/router" "github.com/stretchr/testify/assert" "net/http" @@ -28,6 +29,19 @@ func (e *MyExtension) BeforeNext(c *gin.Context) {} func (e *MyExtension) AfterNext(c *gin.Context) {} +func (e *MyExtension) SetTemplateProvider(provider diago.TemplateProvider) { + +} +func (e *MyExtension) GetTemplateProvider() diago.TemplateProvider { + return extensions.NewDefaultTemplateProvider() +} +func (e *MyExtension) SetPanelGenerator(generator diago.PanelGenerator) { + +} +func (e *MyExtension) GetPanelGenerator() diago.PanelGenerator { + return diago.NewDefaultPanelGenerator() +} + func TestDiagoMiddleware(t *testing.T) { r := gin.Default() gin.SetMode(gin.TestMode) diff --git a/tests/diago_test.go b/tests/diago_test.go index d448990..6438bc7 100644 --- a/tests/diago_test.go +++ b/tests/diago_test.go @@ -3,16 +3,19 @@ package tests import ( "github.com/gin-gonic/gin" "github.com/gouef/diago" + "github.com/gouef/diago/extensions" "github.com/stretchr/testify/assert" "testing" ) type MockDiagoExtension struct { - PanelHtml string - Html string - JSHtml string - BeforeCalled bool - AfterCalled bool + PanelHtml string + Html string + JSHtml string + BeforeCalled bool + AfterCalled bool + PanelGenerator diago.PanelGenerator + TemplateProvider diago.TemplateProvider } func (m *MockDiagoExtension) GetPanelHtml(c *gin.Context) string { @@ -35,6 +38,19 @@ func (m *MockDiagoExtension) AfterNext(c *gin.Context) { m.AfterCalled = true } +func (e *MockDiagoExtension) SetTemplateProvider(provider diago.TemplateProvider) { + +} +func (e *MockDiagoExtension) GetTemplateProvider() diago.TemplateProvider { + return extensions.NewDefaultTemplateProvider() +} +func (e *MockDiagoExtension) SetPanelGenerator(generator diago.PanelGenerator) { + +} +func (e *MockDiagoExtension) GetPanelGenerator() diago.PanelGenerator { + return diago.NewDefaultPanelGenerator() +} + func TestDiago(t *testing.T) { t.Run("Test AddExtension", func(t *testing.T) { newDiago := diago.NewDiago()